久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

mysql查詢慢的原因

共計(jì) 1453 個(gè)字符,預(yù)計(jì)需要花費(fèi) 4 分鐘才能閱讀完成。

自動(dòng)寫代碼機(jī)器人,免費(fèi)開通

這篇文章給大家分享的是有關(guān) mysql 查詢慢的原因的內(nèi)容。丸趣 TV 小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨丸趣 TV 小編過來看看吧。

mysql 慢查詢有影響的原因:1、沒有索引或沒有用到索引;2、IO 吞吐量小形成了瓶頸;3、內(nèi)存不足;4、網(wǎng)絡(luò)速度慢;5、一次查詢的數(shù)據(jù)量過大;6、出現(xiàn)死鎖。

常見查詢慢的原因常見的話會(huì)有如下幾種:

1、沒有索引或沒有用到索引。

PS:索引用來快速地尋找那些具有特定值的記錄,所有 MySQL 索引都以 B - 樹的形式保存。如果沒有索引,執(zhí)行查詢時(shí) MySQL 必須從第一個(gè)記錄開始掃描整個(gè)表 的所有記錄,直至找到符合要求的記錄。表里面的記錄數(shù)量越多,這個(gè)操作的代價(jià)就越高。如果作為搜索條件的列上已經(jīng)創(chuàng)建了索引,MySQL 無需掃描任何記錄 即可迅速得到目標(biāo)記錄所在的位置。如果表有 1000 個(gè)記錄,通過索引查找記錄至少要比順序掃描記錄快 100 倍。

索引類型:

普通索引:這是最基本的索引類型,沒唯一性之類的限制。

唯一性索引:和普通索引基本相同,但所有的索引列只能出現(xiàn)一次,保持唯一性。

主鍵:主鍵是一種唯一索引,但必須指定為 PRIMARY KEY。

全文索引:MYSQL 從 3.23.23 開始支持全文索引和全文檢索。在 MYSQL 中,全文索引的索引類型為 FULLTEXT。全文索引可以在 VARCHAR 或者 TEXT 類型的列上創(chuàng)建。

2、IO 吞吐量小形成了瓶頸。

PS:這是從系統(tǒng)層來分析 MYSQL 是比較耗 IO 的。一般數(shù)據(jù)庫監(jiān)控也是比較關(guān)注 IO。

監(jiān)控命令:$iostat -d -k 1 10

參數(shù) -d 表示,顯示設(shè)備(磁盤)使用狀態(tài);- k 某些使用 block 為單位的列強(qiáng)制使用 Kilobytes 為單位;1 10 表示,數(shù)據(jù)顯示每隔 1 秒刷新一次,共顯示 10 次。

3、內(nèi)存不足

監(jiān)控內(nèi)存使用:vmstat [-n] [延時(shí) [ 次數(shù)]]

Memory

swpd: 切換到交換內(nèi)存上的內(nèi)存 (默認(rèn)以 KB 為單位)

? 如果 swpd 的值不為 0,或者還比較大,比如超過 100M 了,但是 si, so 的值長期為 0,這種情況我們可以不用擔(dān)心,不會(huì)影響系統(tǒng)性能。

free: 空閑的物理內(nèi)存

buff: 作為 buffer cache 的內(nèi)存,對(duì)塊設(shè)備的讀寫進(jìn)行緩沖

cache: 作為 page cache 的內(nèi)存, 文件系統(tǒng)的 cache? 如果 cache 的值大的時(shí)候,說明 cache 住的文件數(shù)多,如果頻繁訪問到的文件都能被 cache 住,那么磁盤的讀 IO bi 會(huì)非常小。

4、網(wǎng)絡(luò)速度慢

ping IP -t 查看是否有丟包。

5、一次查詢的數(shù)據(jù)量過大。

比如沒有分頁查詢,一次提取上萬條記錄。數(shù)據(jù)庫有可能卡死。

6、出現(xiàn)死鎖

所謂死鎖: 是指兩個(gè)或兩個(gè)以上的進(jìn)程在執(zhí)行過程中, 因爭奪資源而造成的一種互相等待的現(xiàn)象, 若無外力作用, 它們都將無法推進(jìn)下去.

Show innodb status 檢查引擎狀態(tài) , 可以看到哪些語句產(chǎn)生死鎖。

執(zhí)行 show processlist 找到死鎖線程號(hào). 然后 Kill processNo

7、返回了不必要的行或列

一般查詢 SQL 語句一定要將字段明確指定。而不要使用 * 進(jìn)行查詢

8、注意 UNion 和 UNion all 的區(qū)別。UNION all 好

UNION 在進(jìn)行表鏈接后會(huì)篩選掉重復(fù)的記錄,所以在表鏈接后會(huì)對(duì)所產(chǎn)生的結(jié)果集進(jìn)行排序運(yùn)算,刪除重復(fù)的記錄再返回結(jié)果。所以 union all 的效率肯定要高!

感謝各位的閱讀!關(guān)于“mysql 查詢慢的原因”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向 AI 問一下細(xì)節(jié)

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-12-16發(fā)表,共計(jì)1453字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 黄山市| 鄂温| 益阳市| 辛集市| 弥勒县| 通海县| 通州区| 克东县| 东乡县| 灵台县| 子长县| 新蔡县| 西峡县| 彝良县| 阿坝县| 芜湖县| 聂荣县| 府谷县| 新丰县| 博湖县| 道孚县| 宝应县| 潜山县| 德钦县| 化州市| 土默特右旗| 贞丰县| 玉环县| 景洪市| 永济市| 忻城县| 高清| 兰溪市| 大姚县| 全椒县| 天全县| 工布江达县| 射阳县| 绥滨县| 二手房| 崇信县|