1.什麼是彙集索引?python
樹形結構將數據組織和存儲起來,起到加速查詢的效果mysql
2.主鍵索引怎麼添加?算法
(1)彙集索引(主鍵索引)的添加方式,建立時添加sql
方式一:數據庫
Create table t1(ide
id int primary key,性能
)fetch
方式二:優化
Create table t1(網站
Id int,
Primary key(id)
)
(2)惟一索引建立時添加:
方式一:
Create table t1(
Id int unique,
)
方式二:
Create table t1(
Id int,
unique key uni_name (id)
)
(3)表建立完了以後添加:
Alter table 表名 add primary key(id)
(4)刪除主鍵索引:
Alter table 表名 drop primary key;
普通索引:
(4)建立:
Create table t1(
Id int,
Index index_name(id)
)
Alter table s1 add index index_name(id);
Create index index_name on s1(id);
(5)刪除:
Alter table s1 drop index u_name;
DROP INDEX 索引名 ON 表名字;
Show create table 表名;
3.Sql優化神器explain :
查看一下sql的預執行效率
4.數據備份
導出: mysqldump -h ip -P 3306 -u 用戶名 -p密碼 -B 庫名.表名> 路徑 庫名.sql
導入 : mysql -u 用戶名 -p密碼 < 路徑 庫名.sql
5.
建立用戶,指定權限
建立用戶:root用戶 超級管理員
Use mysql
Create user ‘用戶名’@’%’ identified by ‘密碼’
用戶:chao(*.* 表明全部庫,全部表)
分配權限:Grant select,insert,update on *.* to ‘chao’@’%’;
Revoke all on 庫名.表名 from ‘chao’@’%’;
Flush privileges;
6.觸發器(娜姐:對數據的增刪改查以前或者以後,自動觸發SQL語句)
Delimiter //
Create trigger t_name before(after) insert(update\delete) on 表名 for each row
Begin
Select * from xx;
End //
Delimiter ;
7.注意,這個還須要多理解
存儲過程:
Create procedure p1(
In n1 int,
Out n2 int,
Inout n3 int
)
Begin
If while
End
#上邊是主要代碼
Set @res = 1;
Set @res2 = 2
Call p1(1,@res,@res2); #調用
Select @res,@res2;
Cursor.callproc(‘p1’,(1,2,3))
Cursor.fetchall()
Sql=’select @_p1_0,@_p1_1,@_p1_2;’
Cursor.execute(sql)
Cursor.fetchall()
8.
事務:
四大特性:原子性\一致性\隔離性\持久性
Start transaction;
一堆sql語句
若是失敗了
Declare exit handler for sqlexception(sqlwarning) #聲明退出處理對於sql異常
begin
Rollback;
End
Commit;
9.數據庫集羣 :
當網站的訪問量比較大的時候,查看本身的信息(存儲在數據庫裏邊的數據),可是數據量很是大的訪問,首先鏈接數據庫,一個數據庫承受的數據比較多,承受不住多開幾個數據庫,將性能分散,經過算法實現,這個算法寫在python程序中.
10.數據庫讀寫分離
一個數據庫專門讀操做,一個數據庫專門 寫操做,寫的被分到讀的庫裏.
11.主從複製&&高可用 :
別人訪問數據庫,數據庫崩了,公司爲了避免出現這種狀況,須要實時備份數據,(包括增量備份//實時備份//雙機備份),binlog(日誌文件),主庫崩了,客戶端都要鏈接這個主機,備份的數據庫要頂上用,高可用就是瞬間替換以前的數據庫.