mysql演算法優化原則 MYSQL的索引優化

2021-10-18 11:50:40 字數 576 閱讀 9642

當乙個表的資料量較大時,我們需要對這個表做優化,除了分表分庫以外,最常見的就是索引優化了,那做索引優化的原則是什麼呢?

在不考慮排序,分組時,也就是sql語句中只有where的時候,多列並查如

select * from payment where staff_id=? and customer_id=?

的索引原則,誰的數量多,把誰作為最左索引,最左索引在mysql的b+樹結構裡的位置是很重要的。

select count(distinct staff_id)/count(*) staff_id_selectivity,count(disctinct customer_id)/count(*) customer_id_selectivity,count(*) from payment\g

加入執行結果為   staff_id_selectivity:0.0001

customer_id_selectivity:0.0373

count(*):16049

很明顯customer_id的佔比大,結果為

alter table payment add key(customer_id,staff_id)

mysql 優化原則

2.查詢需要用到的字段。不要查詢表裡面的所有沒用的字段。原因是使用者端用sql語句查詢的時候,把所有沒有用到的字段也查詢出來之後。伺服器端返回的資料報就會顯示很大。影響返回速度。3.多表查詢的時候,是小表驅動大表。這樣才會更高效。4.詳細mysql原理分析位址可參考位址 5.索引優化 mysql索引...

mysql語句優化原則 MySQL語句優化的原則

1 使用索引來更快地遍歷表。預設情況下建立的索引是非群集索引,但有時它並不是最佳的。在非群集索引下,資料在物理上隨機存放在資料頁上。合理的索引設計要建立在對各種查詢的分析和 上。一般來說 a.有大量重複值 且經常有範圍查詢 和order by group by發生的列,可考慮建立群集索引 b.經常同...

mysql索引優化原則 MySQL 索引優化原則

索引優化原則 1 最左字首匹配原則,聯合索引,mysql會從做向右匹配直到遇到範圍查詢 3 and d 4 如果建立 a,b,c,d 順序的索引,d是用不到索引的,如果建立 a,b,d,c 的索引則都可以用到,a,b,d的順序可以任意調整。2 和in可以亂序,比如a 1 and b 2 and c ...