程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 解決MySQL數據庫中與優化器有關的問題

解決MySQL數據庫中與優化器有關的問題

編輯:MySQL綜合教程

  MySQL采用了基於開銷的優化器,以確定處理查詢的最解方式。在很多情況下,MySQL能夠計算最佳的可能查詢計劃,但在某些情況下,MySQL沒有關於數據的足夠信息,不得不就數據進行“有教養”的估測。

  當MySQL未能做“正確的”事時,可使用下述工具來幫助MySQL:

  使用EXPLAIN語句獲取關於MySQL如何處理查詢的信息。要想使用它,可在SELECT語句前添加關鍵字EXPLAIN:

  mysql> EXPLAIN SELECT * FROM t1, t2 WHERE t1.i = t2.i;

  使用ANALYZE TABLE tbl_name,為已掃描的表更新鍵分配。

  為已掃描的表使用FORCE INDEX,通知MySQL:與使用給定的索引相比,表掃描開銷昂貴。

  SELECT * FROM t1, t2 FORCE INDEX (index_for_column)

  WHERE t1.col_name=t2.col_name;

  USE INDEX和IGNORE INDEX也有一定的幫助。

  你可以調節全局或線程類系統變量。例如,用“--max-seeks-for-key=1000”選項啟動mysqld,或使用“SET max_seeks_for_key=1000”來通知優化器:假定任何表掃描均不會導致1000個以上的鍵搜索。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved