筆記 索引和SQL查詢優化(待補充)

2022-08-21 17:39:10 字數 1304 閱讀 9231

參考書 《高效能 mysql》

書中索引和sql的優化經驗不但適用於mysql,大部分也適用於postgresql、oracle、db2、sqlserver,以及mongodb。

一.索引型別

1.b樹索引

2.雜湊索引

3.空間索引(地理空間資料)

4.全文索引

二.索引使用策略

1.欄位中不應該有表示式

低效:select * from foo where id + 1 = 8

高效:select * from foo where id = 7

低效: select * from foo where to_days('2012-12-12') -to_days(date_col) <=10

高效: select * from foowhere date_col> 

date_sub('2012-12-12',interval10 day)

2.字首索引

3.聚集索引

4.覆蓋索引

三、sql優化

1.不要提取不需要的列

2.表連線的查詢一般比子查詢更快

3.優化表連線:

確保on或using使用的列上有索引

確保group by 和 order by 只引用乙個表上的列,這樣mysql會嘗試使用索引

索引和SQL查詢優化(待補充)

參考書 高效能 mysql 書中索引和sql的優化經驗不但適用於my sql,大部分也適用於postgresql oracle db2 sqlserver,以及mongodb。一.索引型別 1.b樹索引 2.雜湊索引 3.空間索引 地理空間資料 4.全文索引 二.索引使用策略 1.欄位中不應該有表示...

sql 常用查詢和優化筆記

1.sum if select sum if status 1,1,0 as s1,sum if status 2,1,0 as s2 from vehicle 2.count if select count status 1 or null as s1,count status 2 or null...

Mysql索引和查詢優化

索引基數 基數是資料列所包含的不同值的數量。例如,某個資料列包含值1 3 7 4 7 3,那麼它的基數就是4 索引的基數相對於資料表行數較高 也就是說,列中包含很多不同的值,重複的值很少 的時候,它的工作效果最好。如果某資料列含有很多不同的年齡,索引會很快地分辨資料行。如果某個資料列用於記錄性別 只...