主頁 > 資料庫 > MYSQL基礎

MYSQL基礎

2021-03-08 10:56:49 資料庫

  • 檔案的包含

    include include_once //包含的檔案若不存在,程式繼續執行

    require require_once //包含的檔案若不存在,程式終止,不執行下面的陳述句

    once的函式在同一網頁中出現多次,也只會執行一次

  • 提示:MYSQL陳述句不區分大小寫,只是MySQL陳述句規范

    1.關鍵字和函式名全部大寫

    2.資料庫名稱,表名稱,欄位名稱全部小寫

MYSQL基礎

1.mysql概述

  • 什么是資料庫?

    答:資料的倉庫

  • 資料庫的主要功能

    1.將資料保存到檔案或記憶體

    2.接收特定的命令,然后對檔案進行相應的操作

2.MYSQL的安裝

  • MySQL是一個關系型資料庫管理系統

  • 想要使用MySQL來存盤并操作資料,則需要

    1.安裝MySQL服務端

    2.安裝MySQL客戶端

    2.1.客戶端連接服務端

    3.客戶端發送命令給服務端MySQL服務的接受命令并執行相應的操作

  • phpstudy相對于的兩個管理工具

    • mysql_front //c/s
    • phpmyadmin //b/s
  • 注意:MySQL安裝后,系統會自動創建名為information_schema和mysql的兩個系統資料庫,系統資料庫存放一些和資料庫相關的資訊,如果洗掉了這兩個資料庫,MYsql將不能正常作業,

3.MySQL四種常見資料庫表引擎

  • 存盤引擎查看

  • InnoDB存盤引擎(安全性)

    • 由一個.frm檔案組成

    如果要提供提交、回滾、崩潰恢復能力的事物安全(ACID兼容)能力,并要求實作并發控制

    InnoDB提供支持以及外部鍵(外鍵:可實作級聯洗掉、更新操作)等高級資料庫功能

  • MYISAM存盤引擎(性能)

    表檔案存盤 表檔案的存盤是由 . frm .MYD .MYI

    如果資料表主要用來插入和查詢記錄,則MYISAM引擎能提供較高的處理效率

    MYISAM型別的表強調的是性能;

    MYISAM型別不支持事務處理等高級處理

    InnoDB與MYISAM相對比

    • 兩種型別最主要的差別就是InnoDB支持事務處理與外鍵的行級鎖;而MYISAM不支持,所以MYISAM往往就容易被人認為只適合在小專案中使用,
  • MEMORY存盤引擎

    如果只是臨時存放資料,資料量不大,并且不需要較高的資料安全性,可以選擇將資料保存在記憶體中的Memory引擎,MySQL中使用該引擎作為臨時表,存放查詢的中間結果

  • Archive存盤引擎

    如果只是INSERT和SELECT操作,可以選擇Archive,Archive支持高并發的插入操作,但是本身不是事務安全的,Archive非常適合存盤歸檔資料,如記錄日志資訊可以使用Arichive

4.MYSQL操作

  • 操作分類

    1.可視化操作【借助工具實作 mysql-front phpmyadmin】

    2.命令列操作

  • 資料庫操作

    1.鏈接資料庫:mysql -u root -p

    2.顯示資料庫:show databases;

    3.mysql創建資料庫指定字符集

    4.選擇資料庫:use 庫名;

    5.洗掉庫【謹慎操作,重要資料先備份】

    ? drop database 庫名;

    ? drop database if exists 庫名; //推薦使用

    6.創建庫

    ? create database 庫名;

    7.資料庫重命名

  • 表操作

    1.顯示表show tables;

    2.創建表

    create table 表名(
    列名 型別 是否為空
    列名 型別 是否為空
    )engine=InnoDB default
    CHARSET=utf8
    

    3.洗掉表

    ? drop table 表名

    4.清空表

    delete from 表名; //清空后,主鍵起始值繼續增加
    truncate table 表名; //清空后,主鍵起始值從1開始
    
  • 表欄位操作

    • 表欄位命名規則

      1.建議全部小寫

      2.不要用系統關鍵字命名

      3.命名方式建議字母、字母+數字/符號的組合

      4.欄位名是唯一的

    1.增加欄位

    alter table 庫名.表名
    	add column 欄位名 型別 是否為空 default 默認值 comment 備注資訊;
    

    2.修改欄位

    alter table 庫名.表名
    	change column 被修改的欄位 新欄位 型別 是否為空 default 默認值 comment 備注資訊;
    

    3.洗掉欄位

    alter table 庫名.表名
    	drop column 欄位名 ;
    

    4.MySQL欄位四大類(盡量設定為無符號 //設定的量相對應要多點)

    • 數值型

      • 整型

        一.常用的四種整型型別

        • tinyint:微小的(默認是有符號,-128~127)

        • smallint 小的

        • mediumint

        • int

          1)占據空間

          2)存盤范圍

          tinyint 微小的列型別,1個位元組,默認是有符號的,勾選對應欄位設定為unsigned無符號

          無符號最大的范圍【0~255】

          有符號的【-128~127】

        二.十進制、二進制&正負數

        三.常用的四種整型型別值范圍

        ? 位元組位 無符號 有符號

        tinyint 1 8 0~255 -128~127

        smallint 2 16 0~2^16-1 -215~215-1

        mediumint 3 24

        int 4 32

        四.無符號unsigned與零填充zerofill

        unsigned:無符號,影響存盤范圍

        M代表寬度:在zerofill時才有意義

        zerofill:零填充

      • 浮點型

        MySQL中使用浮點數型別和定點數型別來表示小數

        浮點型在資料庫中存放的是近似值

        定點型別在資料庫中存放的是精確值

        浮點數型別包括了單精度浮點數(float)、雙精度(double)、定點數型別decimal(numeric)

        MySQL中可以指定浮點數和定點數的精度,其基本形式下:資料型別(M,D)

        M引數稱為精度,是資料的總長度,小數點不占位置,D引數成為標度,是指小數點后面的長度位D,

    • 字符型

      一.char 、varchar

      char:定長255,char(M);代表寬度,可容納的字符數

      varchar:變長utf8 2w左右漢字 varchar(m);代表寬度,可容納的字符數

      兩者區別:

      char定長:

      ? M個字符,如果存的小于M個字符,實占M個字符,(如果不夠M個字符,內部會用空格補齊)取出的時候,會把后面的空格去掉,

      varchar:

      ? M個字符,存的小于M個字符N(n<=m),實際只占用N個字符

      三個區別:

      ? 1.大小

      ? 2.空間利用率,定長存盤,變長存盤

      ? 3.處理末尾空格機制不同

      速度上:

      ? char定長速度快

      char與varchar型的選擇原則:

      ? 1.空間利用效率

      ? 2.速度

      二,text

      text缺點:不能全文索引

      可以存盤較大的文本段,搜索速度慢

      不要加默認值,無效

    • 日期/時間型

      日期/時間型在資料庫中主要分兩種格式存盤

      ? 1.時間字串

      ? 2.時間戳整型

  • 記錄操作

    • 增加

      insert into 表名 set 欄位名=值,欄位名=值;
      

      插入多條記錄

      insert into 表名 (欄位1,欄位2) values (值1,值2),(值1,值2);
      
      replace into 是根據索引值進行判斷,若存在則先洗掉,后增加一條
      ++++++++++++++
      replace into 表名 set 欄位1=值,欄位2=值;
      
    • 洗掉記錄

      delete from 表名 where 條件;
      ++++++++++++++++++++++++++
      清空資料,讓自動增量從1開始;
      在資料除錯階段,我們需要錄入除錯資料
      方法一:
      	使用工具可視化操作
      	
      方法二:
      	不使用delete from 表名,清空資料
      	使用truncate 表名
      
      
    • 修改記錄

      update 表名 set 修改欄位=值,修改欄位=值 where 條件;
      
      
    • 查詢記錄

      單表查詢;=,like,in not in,>,<,>=,<=,<>,limit,rand(),sum(),count(),avg(),max(),min(),group by having;wghol
      wghol順序
      :where group having order limit
      
      

      通配符:

      ? %:代表0個、一個或多個字符

      ? _:代表一個字符

      多表查詢:子查詢,關聯查詢,左右鏈接
      子查詢:查詢當中在插入查詢充當條件或是欄位,子表
      關聯查詢:關聯查詢中一定要把關聯欄位作為where條件;若沒有了where,查詢出來的結果是對應的表記錄的乘積,稱之為笛卡爾積
      左右鏈接:查詢要求記錄且關聯表的相關記錄
      	左鏈接:left join左鏈接查詢:左邊表全部記錄及右邊表滿足要求的記錄
      	select 欄位 from a left join b on a.欄位=b.欄位
      	右鏈接:right join右鏈接查詢,右邊全部記錄及左邊表滿足要求的記錄
      	select 欄位 from a right join b on a.欄位=b.欄位
      
      
      聯合查詢:
      union、union all
      共同點:組合多個查詢結果為一個查詢結果集;
      不同點:
      union:過濾重復的部分,只保留一個
      union all:顯示所有
      sql用了union后的排序問題
      	注意事項:
      	1.必須宣告臨時表
      	2.必須使用別名
      
      
  • 索引、主鍵、外鍵

    索引:
    定義:索引--該欄位沒有重復值,但可以有一個空值
    作用:索引--是提高查詢排序的速度
    個數:索引--一個表可以有多個唯一索引
    
    
    主鍵:
    定義:唯一標識一條記錄,不能有重復的,不允許為空
    作用:主鍵--用來保證資料完整性
    個數:主鍵--主鍵只有一個
    
    資料庫主鍵,指的是一個列或是多個列的組合,其值能唯一地標識表中的每一行,通過它可強制表的物體完整性,主鍵主要是用來其他表的外鍵關聯,以及本記錄的修改與洗掉,
    
    
    外鍵【InnoDB】
    MySQL支持外鍵的存盤引擎只有InnoDB,在創建外鍵的時候,要求父表必須有對應的索引,子表在創建外鍵的時候也會自動創建對應的索引,在創建索引的時候,可以指定在洗掉、更新父表時,對子表進行的相應操作,
    定義:表的外鍵是另一個表的主鍵,外鍵可以有重復的,可以是空值,
    作用:外鍵--用來和其他表建立聯系使用
    個數:外鍵--一個表可以有多個外鍵
    
    如果是公共關鍵字在一個關系中是主關鍵字,那么這個公共關鍵字被稱為另一個關系的外鍵,由此可見,外鍵表示了兩個關系之間的相關聯系,以另一個關系的外鍵作主關鍵字的表被稱為主表,具有此外鍵的表被稱為主表的從表,外鍵又稱為外關鍵字
    
    
  • 資料庫/表 sql匯入&匯出 //命令列操作

    • 資料庫/表匯出

      匯出:資料+結構,且洗掉創建目標
      mysqldump -u 賬戶 -p 庫名 >位置
      匯出:結構
      mysqldump -u 賬戶 -p -d 庫名 >位置
      匯出:資料
      mysqldump -u 賬戶 -p 庫名 表1 表2 >位置
      
      
    • 資料庫/表匯入

      mysql>set names utf8;
      mysql>source 匯入表所在的位置;
      
      

5.MYSQL運算子與常用函式

  • 運算子

    1.數值計算運算子 加減乘除取余(+ - * / %)

    DIV:除法
    	結果得到后,只保留整數部分
    MOD:取余
    	同等與%
    
    

    2.比較運算子,特殊比較運算子

    一、比較運算子
    MySQL支持的比較運算子:大于、小于、等于、不等于、大于等于、小于等于(>、<、=或<=>、>=、<=、<>或!=)、特殊比較運算子,
    需要注意的null值得相等比較,其他與數學比較運算基本無異,
    <=>主要用來比較null得,MySQL特有得一個符號,條件比較時:is null或者<=>null,
    is not null或者not 欄位<=>null
    
    
    二、特殊比較運算子
    除了數學類得比較運算子,還有一些特殊比較運算子
    BETWEEN AND 存在于指定得范圍
    	BETWEEN values1 AND values2;用來比較匹配指定value1與value2兩個值之間的值,比較值可以是數字、文本、時間
    IS NULL 為空
    	比較值是否為空
    IN 存在于指定的集合
    	比較(匹配)值是否在指定的集合中
    LIKE 通配符匹配
    	比較(匹配)字符是否符合指定模式的字符
    REGEXP 正則運算式
    	用來做正則匹配
    	正則運算式基于JavaScript/PHP
    
    
  • 常用函式

    字串函式:
    1.加密
    MD5資料加密
    	select MD5("字串");
    2.串接
    CONCAT(str1,str2……strn):連接字串
    str1,str2……strn為一個完整的字串,其中任意引數包含了NULL則直接回傳NULL
    
    CONCAT_WS(連接字符,str1,str2……strn):將第一個值作為字串的間隔字符,后面的引數以該字符作為間隔字符逐個拼接,如果后于字符引數帶有null,會直接忽略繼續拼接
    3.長度計算
    LENGTH()和CHAR_LENGTH():獲取字串長度,
    	通常情況下使用LENGTH獲取英文字串長度,CHAR_LENGTH獲取中文字符長度,所以LENGTH獲取的中文字串長度為3
    4.大小寫轉換
    UPPER()和UCASE():將字串中的字符轉換為大寫,
    LOWER()和LCASE():將字串中的字母轉換為小寫,
    5.截取
    LEFT(STR,NUM)、RIGHT(STR,NUM):從左邊或右邊截取num字串長度的字串,
    
    SUBSTRING(STR,NUM,LEN),MID(STR,NUM,LEN):從字串str中的num位置開始截取長度為len的字串,注意num在str按照從1到n取值,num表示截取字串查長度的起始位置
    6.去空格
    LTRIM(STR):去除字串開始處空格,
    RIRIM(STR):去除字串結束處空格,
    TRIM(STR):去除字串左右空格,
    7.替換
    INSERT(STR,POS,LEN,NEWSTR):將str中以第pos個字符起始,len長度的字串替換成newstr字串,
    REPLACE(STR,SUBSTR,NEWSTR):將str中所有的substr字串替換為newstr,
    
    
    數值函式:
    SUM():求和
    MAX():求最高分
    AVG():求平均值
    ABS(x):回傳x的絕對值
    CELL(x):回傳大于或等于x的最大整數值;#向上取整
    FLOOR(x):回傳小于或等于x的最大整數值;#向下取整
    MOD(x,y):回傳x除以y的余數
    RAND():回傳0~1內的亂數
    ROUND(x,y):回傳數值x的四舍五入后有y位小數的數值
    TRUNCATE(x,y):回傳數值x且截斷為y位小數的值
    
    
    
    日期/時間函式
    1.獲取當前日期
    SELECT CURDATE() #獲取當前日期
    2.獲取當前時間
    SELECT CURTIME() #獲取當前時間
    3.獲取當前日期和時間
    SELECT NOW(); #獲取當前日期和時間
    4.格式化時間
    SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s'); #格式化時間
    5.字串-》時間戳
    select UNIX_TIMESTAMP();#當前時間戳
    6.把我們的時間戳-》字串
    SELECT FROM_UNIXTIME(1641096732);#時間戳-》字串 2022-01-02 12:12:12
    SELECT FROM_UNIXTIME(UNIX_TIMESTAMP()); #等效于select NOW();
    
    WEEKOFYEAR(date);獲取日期為date對應一年的第幾周
    
    

7.PHP操作MySQL

鏈接資料庫函式
1.php7已廢棄
mysql_connect
	mysql_connect函式,PHP5開始,MySQL就不推薦使用了,PHP7已經放棄mysql_connect()支持
2.mysqli_connect
	程序化
	物件化
	

步驟分解
1.連接資料庫
$conn=mysqli_connect("localhost","賬戶","密碼");
if(!$conn){
die("資料庫連接失敗!");
}  //$conn連接成功時為object,不成功時為布林值 false
2.設定操作的資料庫
mysqli_select_db($conn,"資料庫名"); //設定操作的資料庫
3.設定操作編碼
mysqli_query($conn,"set names utf8"); //設定操作編碼
注意:設定編碼是utf8或者gbk,不是utf-8,不是gbk2312
使用set names utf8或者 set names gbk設定默認的編碼格式
4.執行SQL&處理結果
//執行sql
	$sql="select * from 表名";
	$rst=mysqli_query($conn,$sql);
//處理結果
while($arr=mysqli_fetch_assoc($rst))
{
 //print_r($arr);
 echo "<br/>";
 echo $arr['欄位名'];
}
5.關閉連接
mysqli_close($conn);

資料處理:
查詢資料型別轉換
	mysql_fetch_row
	mysql_fetch_assoc
	得到的是關聯陣列
	mysql_fetch_array
	可以得到關聯陣列也可以得到索引陣列
	注釋:mysql_fetch_array($result,'MYSQL_ASSOC')與mysql_fetch_assoc($result)回傳結果相同,提示:如果在關聯索引之外還需要數字索引,用mysql_fetch_array()
	本函式回傳的欄位名是區分大小寫的
	mysqli_fetch_object
	$rs=mysqli_fetch_object() //物件
	$rs->欄位名
計算總記錄
mysqli_num_rows
	mysqli_num_rows($result)
	回傳結果集中行的數量

MYSQL用戶及權限

1.概述

資料庫保存著應用程式榷訓月累記錄下來的資料資產,安全級別特別高,所以只能讓授權的用戶可以訪問,其他用戶一律拒絕,MySQL是一個多用戶資料庫,擁有功能強大的訪問控制系統,可以為不同的用戶指定不同的權限,

MySQL中存在5個控制權限的表
全域層級:全域權限適用于一個給定MySQL server中的所有資料庫,這些權限存盤在mysql.user表中

資料庫層級:資料庫權限適用于一個給定資料庫中的所有目標,這些權限存放在mysql.db表中

表層級:表權限適用于一個給定表中的所有列,這些權限存盤在mysql.tables_priv表中

列層級:列權限適用于一個給定表中的單一列,這些權限存盤在mysql.columns_priv表

子程式層級:CREATE ROUTINE、ALTER ROUTINE、EXECUTE和GRANT權限適用于已存盤的子程式,這些權限可以被授予為全域層級和資料庫層級,
而且,除了CREATE ROUTINE外,這些權限可以被授予子程式層級,并存盤在mysql.procs_priv表中

2.MySQL用戶認證

用戶與資料庫服務器互動資料,分為兩個階段:
1.你有沒有權限連接
	服務器如何判斷用戶有沒有權限連接上來:
	依據:
	1.你從哪來?host
	2.你是誰?user
	3.你的密碼是多少?password
	
	用戶的這三個資訊,存盤在mysql庫中的user表中,
	修改host域,使IP可以連接
	mysql>use mysql;
	mysql>update user set host='IP地址' where user='root';
	mysql>flush privileges; #沖刷權限
	
	修改用戶密碼
	mysql>update user set password=password('13131') where user='';
	mysql>flush privileges;
2.你有沒有權限執行操作
	在mysql中,有一個庫是mysql庫,在這個庫中有三個表,一個是user表,user表中存盤了所有用戶的權限資訊,一個是db表,db表存盤的是所有用戶在資料庫層的權限資訊,一個是tables_priv表,存盤的是所有用戶在表層的權限資訊,
	用戶登錄,user表首先能限制用戶登錄,其次還保存了該用戶的全域權限,如果該用戶沒有任何權限,那么將從db表中查找該用戶是否有某個資料庫的操作權限,如果沒有,將從tables_priv表中查找該用戶是否有某個表的操作權限,如果有,則該用戶可以按照已有的權限來操作該表,
	1)全域授權和識訓
	新增用戶并賦予全域權限:
	常用權限:all, create,drop,select,insert,delete,update
	grant[權限1,權限2,……] on *.* to user@'host' identified by 'password'
	//第一個*是庫名,第二個*是表名
	授權:
	創建/更新lisi用戶,host為x.x.x.%,%通配符表示x.x.x.的段用戶都可以連接,密碼為123
	grant all on *.* to lisi@'x.x.x.%' identified by '123';
	
	識訓權限:
	revoke all on *.* from lisi@'x.x.x.%';
	已經存在用戶,也可以用這個命令設定
	grant all on *.* to root@'x.x.x.x' identified by 'root';
	revoke all on *.* from root@'x.x.x.x';
	
	2)資料庫級授權和識訓
	需求:讓lisi用戶擁有mysqlmaster資料庫的所有操作權限
	授權:
	grant all on mysqlmaster.* to lisi@'x.x.x.x' identified by '123';
	
	識訓:
	revoke all on mysqlmaster.* from lisi@'x.x.x.x';
	
	3)表級授權和識訓
	同資料庫級操縱類似,修改第二個*即可

MySQL中的權限分配都是分配到用戶+主機的物體上,MySQL的主機資訊可以是本地(localhost),某個IP,某個IP段,以及任何地方等,即用戶的地址可以限制到某個具體的IP ,或者某個IP范圍,或者任何地方,

MYSQL用戶分為普通用戶和root用戶,root用戶就超級管理員,擁有所有權限,普通用戶只擁有被授予的各種權限,

3.MySQL的權限分類及存盤

全域性的管理權限:作用于整個MySQL實體級別(user)
資料庫級別的權限:作用于某個指定的資料庫上或者所有的資料庫上(db)
資料庫物件級別的權限:作用于指定的資料庫物件上(表、視圖等)或者所有的資料庫物件上(tables_priv)

權限存盤在mysql庫的user,db,tables_priv,colums_priv,procs_priv這個幾個系統表中,待MySQL實體啟動后就加載到記憶體中

4.MySQL訪問控制實戰-允許遠程訪問/外網訪問

設定服務器的MySQL允許遠程訪問/外網訪問
一、進入mysql
mysql -u root -p
輸入密碼

二、選擇MySQL資料庫
use mysql

三、增加允許遠程訪問的用戶或者允許現有用戶的遠程訪問,
給root授予在任意主機(%)訪問任意資料庫的所有權限,
update user set host='%' where user='root';

insert into user set host="%",user='lisi2',password=password('lisi2');

四、沖刷連接權限
flush privileges;

五、設定權限
grant all on *.* to lisi@'x.x.x.x' identified by '123';

六、退出mysql
exit;

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/267433.html

標籤:其他

上一篇:MyBatis的基本使用

下一篇:redis(28):安全

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more