本文目錄一覽:
mysql數據庫: 為什麼sql語句在查詢分析中的執行速度遠遠快於在應用程序的(而且有時候後者慢的很多)
查詢分析的執行速度快於應用程序,主要原因在於應用程序查詢的時候,需要調用對應的數據庫接口驅動程序,如odbc,jdbc等,使得應用程序能夠與數據庫本身能夠交互,這一塊一般無法進行優化,可以優化的地方一般是在建立數據庫的時候,數據庫的邏輯結構和物理結構的優劣直接影響一個系統的性能如何。
mysql數據庫 sql語句執行的原理
簡單點說:
1. 先執行聯接。外聯接(left join,right join,full join)分為3步:生成笛卡爾積;根據on語句篩選滿足a.id=b.tid的行;補齊null行;
2. 根據where子句,再一次進行篩選出a.id=10的行;
3. 執行select子句,取出被請求的字段a.title和b.content
如何分析mysql的查詢語句
A、設置索引項,應該是出現在where後面的列,或者連接字句中出現的列;
B、使用唯一索引,索引的基數越大,索引查詢的效果越好,舉例:查詢條件中含有索引字段和非索引字段的時候,會優先走索引篩選出數據,然後在數據中回表過濾沒有走索引的字段,但是Mysql任務,如果索引篩選出的數據量大於20%,會認為此時走索引效果不如全表掃描,繼而放棄索引,走全表掃描來查詢;
C、使用短索引,例如一個屬性200多位,其實索引只要創建前幾位效果會好;
D、最左原則,組合索引中,靈活運用最左前綴;
E、不要過度使用索引,索引會佔用空間,影響寫入的速度;
原創文章,作者:QNPNO,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/316185.html