標籤:

Mysql 知識點

1.死鎖回滾策略

死鎖發生時mysql會選擇行數少的事務進行回滾

2.鎖類型

共享鎖,排他鎖(行級鎖 innob)

● Record Lock:鎖定單條記錄

n● Gap Lock:鎖定一個範圍的記錄、但不包括記錄本身

n● Next-Key Lock:鎖定一個範圍的記錄、並且包n含記錄本身、這是默認的鎖類型

n更新操作執行流程:n 1.當前讀n 2.返回並且加鎖n 3.更新行n 4.返回成功

3.Innob與mysiam的一些區別

Innob支持行級鎖,mysiam只支持表級鎖

select count(1) Innob會掃整個表,mysiam直接讀取內存中記錄的值

4.常用的查詢優化

1.考慮加索引, 索引在表連接時尤為重要,可以通過explain語句查詢結果進行優化

2.調整緩存使用的內存大小,高效使用Innob緩衝池,查詢緩存

3.避免使用事務,注意鎖的使用

4.or盡量用in代替

5.性能監控和分析 mysqltunner mysqlreport

6.盡量減少掃描行數n(總的來說就是數據緩存,鎖,資料庫連接,索引,sql涉及數據量,sql優化,性能監控, 日誌佔用磁碟io , 主從同步佔用資源 )

執行情況分析命令(explain)

5.聚簇索引

與主鍵是相同的.為了得到好的性能需要了解聚簇索引。

1.如果在表中定義了主鍵,innodb用主鍵作為聚簇索引

n2.如果沒有主鍵,innodb選擇第一個只有非空行的唯一索引作為主鍵,並且innodb將他用作局聚簇索引

3.否則innodb自己生成一個包含行ID的複合列作為聚簇索引

6.二級索引

除了聚簇索引都被稱為二級索引

二級索引包含主鍵,因此主鍵不宜過長

7.MVVC(多版本控制協議)

8.補充

索引類型 : 主鍵,唯一索引,普通索引,全文索引

join操作是只要char 和varcher聲明的長度一致是可以通過索引的

前綴索引 :char varcahr binary varbinaryn


推薦閱讀:

MySQL在Data Warehouse應用的一些指引
12 條用於 Linux 的 MySQL/MariaDB 安全最佳實踐
在SQL中,如何查詢某一欄位中最大值的數據?
雲資料庫MySQL測試的正確姿勢
MySQL多表關聯查詢效率高點還是多次單表查詢效率高,為什麼?

TAG:MySQL |