mysql數據庫優化之 如何選擇合適的列建立索引


1. 在where 從句,group by 從句,order by 從句,on 從句中出現的列;

2. 索引字段越小越好;

3. 離散度大的列放到聯合索引的前面;比如:

    select * from payment where staff_id = 2 and customer_id = 236;

    針對上面的查詢是  index(sftaff_id, customer_id) 好?還是index(customer_id, staff_id)好?

    因為customer_id的離散度更大,因此用后面的更合適!!

那么問題來了。怎么判斷離散度呢,可以使用 select count(distinct customer_id), count(distinct staff_id) from 表名

誰的值大,說明這一些列的離散度更高!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM