sql的相關優化

2021-10-04 20:27:32 字數 1022 閱讀 4683

例如,資料庫**現curdate(),now() 和 rand() 或是其它的諸如此類的sql函式都不會開啟查詢快取

如果使用快取的話,可以使用變數代替這種函式結構。

可以借助phpmyadmin更清晰的檢視資料表執行的更多細節。

explain 的查詢結果還會告訴你你的索引主鍵被如何利用的,你的資料表是如何被搜尋和排序的……等等,等等。

如果在你的表中,有某個欄位你總要會經常用來做搜尋,那麼,請為其建立索引吧。

如果你的應用程式有很多 join 查詢,你應該確認兩個表中join的字段是被建過索引的。這樣,mysql內部會啟動為你優化join的sql語句的機制。

如果你真的想把返回的資料行打亂了,你有n種方法可以達到這個目的。這樣使用只讓你的資料庫的效能呈指數級的下降。

我們應該為資料庫裡的每張表都設定乙個id做為其主鍵,而且最好的是乙個int型的(推薦使用unsigned),並設定上自動增加的auto_increment標誌。

你知道這些欄位的取值是有限而且固定的,那麼,你應該使用 enum 而不是 varchar。

在phpmyadmin中的表現為,檢視表結構,表下面有個字段顯示是"規劃表結構",這裡會給你一些關於表的一些建議。僅供參考,只有表的資料比較大的時候,這些建議才會變的準確,否則可以不採納。

對於牽涉到大批量的更新和刪除的操作時候,可以分批處理 ,處理完一批,休息一下,然後繼續。

例如:

while(1

)// 每次都要休息一會兒

usleep

(50000);

}

myisam 適合於一些需要大量查詢的應用,但其對於有大量寫操作並不是很好。甚至你只是需要update乙個字段,整個表都會被鎖起來,而別的程序,就算是讀程序都無法操作直到讀操作完成。另外,myisam 對於 select count(*) 這類的計算是超快無比的。

innodb 的趨勢會是乙個非常複雜的儲存引擎,對於一些小的應用,它會比 myisam 還慢。他是它支援「行鎖」 ,於是在寫操作比較多的時候,會更優秀。並且,他還支援更多的高階應用,比如:事務。

18 SQL優化 其他SQL的優化

定期分析表,檢查表,優化表 analyze local no write to binlog table table name table name1 本語句用於分析和儲存表的關鍵字分布,執行一次分析表,在分析期間使用乙個讀取鎖定。這對於myisam,bdb 和innodb 表有作用,對於 myis...

mysql的相關優化

mysql的優化 mysql優化三大方向 優化mysql所在伺服器核心。對mysql配置引數進行優化 my.cnf 此優化需要進行壓力測試來進行引數調整。對sql語句以及表優化。伺服器核心方面優化 網路引數配置 網路引數配置需要修改配置檔案 etc sysctl.conf,可以在配置檔案後面新增一下...

查詢優化 SQL優化

查詢優化注意點 代表查詢速度比較 1 所有查詢必須注意 的使用必要性 cout 1 cout 2 字段 主鍵索引 字段 普通索引 字段 沒有索引 3 乙個字段 多個字段 欄位多越慢 4 大於10000和大於10001的區別 後者大於前者 5 列沒別名 列 有別名6 兩個條件,where時應該將符合資...