欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL慢查詢查找和調(diào)優(yōu)測試

 更新時(shí)間:2013年01月02日 11:08:58   作者:  
MySQL慢查詢查找和調(diào)優(yōu)測試,接下來詳細(xì)介紹,需要了解的朋友可以參考下
編輯 my.cnf或者my.ini文件,去除下面這幾行代碼的注釋:
復(fù)制代碼 代碼如下:

log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes

這將使得慢查詢和沒有使用索引的查詢被記錄下來。
這樣做之后,對mysql-slow.log文件執(zhí)行tail -f命令,將能看到其中記錄的慢查詢和未使用索引的查詢。
隨便提取一個(gè)慢查詢,執(zhí)行explain:
復(fù)制代碼 代碼如下:

explain low_query
 
你將看到下面的結(jié)果
+----+-------------+---------------------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------------------+------+---------------+------+---------+------+------+-------------+
| 1 | SIMPLE | some_table | ALL | NULL | NULL | NULL | NULL | 166 | Using where |
+----+-------------+---------------------+------+---------------+------+---------+------+------+-------------+
注意上面的rows和key列。rows顯示該查詢影響了多少行記錄,我們不想讓這個(gè)值太大。key顯示用了哪個(gè)索引,為NULL時(shí)表示查詢未用任何索引。
如果想讓查詢更快,你或許需要為某些列增加索引:
CREATE INDEX myapp_mytable_myfield_idx on myapp_mytable(myfield);
除了配置mysql配置文件來實(shí)現(xiàn)記錄慢查詢外,還有下面的方法可以記錄慢查詢:
復(fù)制代碼 代碼如下:

SELECT t.TABLE_SCHEMA AS `db`,
t.TABLE_NAME AS `table`,
s.INDEX_NAME AS `index name`,
s.COLUMN_NAME AS `FIELD name`,
s.SEQ_IN_INDEX `seq IN index`,
s2.max_columns AS `# cols`,
s.CARDINALITY AS `card`,
t.TABLE_ROWS AS `est rows`,
ROUND(((s.CARDINALITY / IFNULL(t.TABLE_ROWS, 0.01)) * 100), 2) AS `sel %`
FROM INFORMATION_SCHEMA.STATISTICS s
INNER JOIN INFORMATION_SCHEMA.TABLES t ON s.TABLE_SCHEMA = t.TABLE_SCHEMA AND s.TABLE_NAME = t.TABLE_NAME
INNER JOIN (
SELECT TABLE_SCHEMA, TABLE_NAME, INDEX_NAME, MAX(SEQ_IN_INDEX) AS max_columns
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA != 'mysql' GROUP BY TABLE_SCHEMA, TABLE_NAME, INDEX_NAME ) AS s2 ON s.TABLE_SCHEMA = s2.TABLE_SCHEMA AND s.TABLE_NAME = s2.TABLE_NAME AND s.INDEX_NAME = s2.INDEX_NAME
WHERE t.TABLE_SCHEMA != 'mysql' /* Filter out the mysql system DB */
AND t.TABLE_ROWS > 10 /* Only tables with some rows */
AND s.CARDINALITY IS NOT NULL /* Need at least one non-NULL value in the field */
AND (s.CARDINALITY / IFNULL(t.TABLE_ROWS, 0.01)) < 1.00 /* unique indexes are perfect anyway */
ORDER BY `sel %`, s.TABLE_SCHEMA, s.TABLE_NAME /* DESC for best non-unique indexes */
LIMIT 10;

相關(guān)文章

  • MySQL拋出Incorrect string value異常分析

    MySQL拋出Incorrect string value異常分析

    從上至下統(tǒng)一用上UTF-8就高枕無憂,今天還是遇到字符的異常,本文將介紹解決方法
    2012-11-11
  • Mysql數(shù)據(jù)庫表中為什么有索引卻沒有提高查詢速度

    Mysql數(shù)據(jù)庫表中為什么有索引卻沒有提高查詢速度

    你有沒有想起過為什么明明再數(shù)據(jù)庫中有索引,但是查詢速度卻并沒有希望的那樣快?本篇文章將帶給你答案,跟小編一起看看吧
    2022-02-02
  • 一次Mysql?update?sql不當(dāng)引起的生產(chǎn)故障記錄

    一次Mysql?update?sql不當(dāng)引起的生產(chǎn)故障記錄

    這篇文章主要給大家介紹了關(guān)于一次Mysql?update?sql不當(dāng)引起的生產(chǎn)故障的相關(guān)資料,由于update涉及到數(shù)據(jù)的修改,所以很容易推斷,update語句比select語句會更復(fù)雜一些,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • 如何添加一個(gè)mysql用戶并給予權(quán)限詳解

    如何添加一個(gè)mysql用戶并給予權(quán)限詳解

    在很多時(shí)候我們并不會直接利用mysql的root用戶進(jìn)行項(xiàng)目的開發(fā),一般我們都會創(chuàng)建一個(gè)具有部分權(quán)限的用戶,下面這篇文章主要給大家介紹了關(guān)于如何添加一個(gè)mysql用戶并給予權(quán)限的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • mysqlsla慢查詢分析工具使用筆記

    mysqlsla慢查詢分析工具使用筆記

    mysqlsla是一款幫助語句分析、過濾、和排序的功能,能夠處理MySQL慢查詢?nèi)罩尽⒍M(jìn)制日志等。整體來說, 功能非常強(qiáng)大. 能制作SQL查詢數(shù)據(jù)報(bào)表,分析包括執(zhí)行頻率, 數(shù)據(jù)量, 查詢消耗等
    2014-05-05
  • MySQL數(shù)據(jù)表設(shè)計(jì)之自動增長的實(shí)現(xiàn)

    MySQL數(shù)據(jù)表設(shè)計(jì)之自動增長的實(shí)現(xiàn)

    本文主要介紹了MySQL數(shù)據(jù)表設(shè)計(jì)之自動增長的實(shí)現(xiàn),包括創(chuàng)建數(shù)據(jù)表時(shí)設(shè)置自動增長和修改數(shù)據(jù)表時(shí)添加自動增長,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03
  • 實(shí)例講解MySQL 慢查詢

    實(shí)例講解MySQL 慢查詢

    這篇文章主要介紹了MySQL 慢查詢的相關(guān)資料,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-12-12
  • MySQL實(shí)現(xiàn)字段分割一行轉(zhuǎn)多行的示例代碼

    MySQL實(shí)現(xiàn)字段分割一行轉(zhuǎn)多行的示例代碼

    這篇文章主要介紹了MySQL實(shí)現(xiàn)字段分割一行轉(zhuǎn)多行的示例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • mysql 行列動態(tài)轉(zhuǎn)換的實(shí)現(xiàn)(列聯(lián)表,交叉表)

    mysql 行列動態(tài)轉(zhuǎn)換的實(shí)現(xiàn)(列聯(lián)表,交叉表)

    下面小編就為大家?guī)硪黄猰ysql 行列動態(tài)轉(zhuǎn)換的實(shí)現(xiàn)(列聯(lián)表,交叉表)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • MySQL Sleep連接過多問題解決方法

    MySQL Sleep連接過多問題解決方法

    這篇文章主要介紹了MySQL Sleep連接過多問題解決方法,MySQL Sleep連接過多一般多為客戶端沒關(guān)閉連接導(dǎo)致的,解決方法很簡單,修改一下配置文件即可,需要的朋友可以參考下
    2015-05-05

最新評論