查詢性能最基本原因是訪問的數據太多了,對於低效的查詢,通過下面步驟來分析總是很有效的:
1、確認應用程序是否存在檢索大量超過需要的數據。這通常意味着訪問了太多的行,或者是太多的列;
2、確認Mysql服務器是否存在分析大量超過需要的數據行。
造成低效的查詢可能是因爲以下原因:
一、向數據庫請求了不需要的記錄
1、比如分頁查詢沒有加LIMIT限制返回記錄,而是在應用程序中進行數據截取。
2、多表關聯返回全部列,增大磁盤IO
第一種寫法,Mysql在查詢的時候,會把三張表的全部列數據都返回,其實想得到的應該只是actor的數據而已。
3、總是去除全部的列,增大磁盤IO
二、是否在掃描額外的記錄
爲了確認這一點,我們可以通過下面三個指標來衡量查詢開銷
1、響應的時間
2、掃描的行數,也就是使用Explain時的row列
3、返回的行數