成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何將MySQL查詢速度提升300倍

運(yùn)維 數(shù)據(jù)庫(kù)運(yùn)維
MySQL提供了內(nèi)建的耗時(shí)查詢?nèi)罩尽J褂们埃蜷_(kāi) my.cnf 文件,將slow_query_log 設(shè)置為”O(jiān)n”,同時(shí)將 long_query_time設(shè)置為一個(gè)對(duì)一次查詢來(lái)說(shuō)比較慢的時(shí)間(秒數(shù)),比如 0.2。slow_query_log_file設(shè)置為你想保存日志文件的路徑,然后運(yùn)行代碼。

在進(jìn)行性能分析前,需要先定位耗時(shí)查詢。

MySQL 提供了內(nèi)建的耗時(shí)查詢?nèi)罩尽J褂们埃蜷_(kāi) my.cnf 文件,將slow_query_log 設(shè)置為”On”。 同時(shí)將 long_query_time 設(shè)置為一個(gè)對(duì)一次查詢來(lái)說(shuō)比較慢的時(shí)間(秒數(shù)),比如 0.2。slow_query_log_file 設(shè)置為你想保存日志文件的路徑。然后運(yùn)行代碼,執(zhí)行時(shí)間超過(guò)設(shè)定上限的查詢將會(huì)被記錄到日志中。

一旦定位這些煩人的查詢,就可以探究慢的原因。MySQL提供了EXPLAIN關(guān)鍵字。可以與SELECT、DELETE、INSERT、REPLACE、UPDATE語(yǔ)句一起使用。只需要如下一樣添加到查詢開(kāi)始處:

  1. EXPLAIN SELECT picture.id, picture.title 
  2.  
  3. FROM picture 
  4.  
  5. LEFT JOIN album ON picture.album_id = album.idWHERE album.user_id = 1; 

 

結(jié)果是對(duì)數(shù)據(jù)訪問(wèn)過(guò)程的解析。每行代表一個(gè)查詢相關(guān)的數(shù)據(jù)表:

 

重點(diǎn)是表名、使用的key、查詢執(zhí)行時(shí)所掃描的行數(shù)。

 

這個(gè)查詢掃描了picture表2百萬(wàn)行,對(duì)每個(gè)picture記錄掃描了album表2萬(wàn)行。意味著,該查詢實(shí)際掃描了album表400億行。這個(gè)過(guò)程可以更高效。

索引

使用索引,可以極大提升性能。比如地址簿中的名字。找一個(gè)名字,你可以從頭翻到尾,也可以找到相應(yīng)的字符標(biāo)簽頁(yè)來(lái)快速定位。

使用索引可以避免無(wú)必要的表掃描。比如在picture.album_id上添加索引:

  1. ALTER TABLE picture ADD INDEX(album_id); 

現(xiàn)在執(zhí)行查詢,就不會(huì)掃描整個(gè)picture列表了。首先,所有的album表會(huì)被掃描以找到屬于該用戶的album,然后,使用album_id列索引快速定位對(duì)應(yīng)的picture。掃描的行數(shù)減少到了20萬(wàn),比原始查詢快了317倍。

 

按照以下方式添加索引可以確保兩張表都能使用對(duì)應(yīng)鍵:

  1. ALTER TABLE album ADD INDEX(user_id); 

 

這次,album表不會(huì)被全部掃描,通過(guò)user_id鍵就可以精確定位相應(yīng)的album。然后這100個(gè)album被掃描后,通過(guò)album_id鍵相關(guān)的picture也可以快速找到。每張表都用到了一個(gè)鍵進(jìn)行查詢性能優(yōu)化,結(jié)果比原始查詢快了380倍。

但是并不意味著可以隨意添加索引,因?yàn)樗饕龝?huì)導(dǎo)致寫(xiě)數(shù)據(jù)庫(kù)用時(shí)增長(zhǎng)。所以使用索引導(dǎo)致讀用時(shí)縮短,寫(xiě)用時(shí)增長(zhǎng)。因此,如果能提升讀性能時(shí)再添加索引。使用EXPLAIN來(lái)確認(rèn)索引是否被查詢用到,沒(méi)有就刪除。

責(zé)任編輯:龐桂玉 來(lái)源: 數(shù)據(jù)庫(kù)開(kāi)發(fā)
相關(guān)推薦

2017-05-10 16:09:12

MySQL數(shù)據(jù)庫(kù)查詢

2020-02-28 09:26:54

PythonGo語(yǔ)言C語(yǔ)言

2021-05-12 11:19:08

DevTools堆棧追蹤

2017-10-20 10:09:01

代碼CocoaPods編譯

2018-07-30 15:05:26

Hadoop大數(shù)據(jù)集群

2014-04-01 09:52:46

MySQL

2025-02-24 08:24:39

2023-09-12 12:14:05

Python程序矢量化

2009-03-29 09:47:24

蘋(píng)果Iphone移動(dòng)OS

2024-04-10 08:00:00

PostgresNoSQL

2009-12-24 09:30:38

Opera性能測(cè)試

2013-02-22 09:36:32

ImpalaHadoop大數(shù)據(jù)Cloudera

2012-11-07 15:57:34

OSSECMYSQL

2024-10-29 08:21:05

2024-01-19 13:41:00

AI模型

2024-11-13 09:29:41

SpringCRaCCRIU

2024-11-15 09:41:03

2024-03-19 14:43:17

自動(dòng)駕駛激光

2020-12-03 15:54:15

軟件開(kāi)發(fā)工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲导航深夜福利涩涩屋 | 欧美影院 | 中文字幕日韩欧美一区二区三区 | 久久久99国产精品免费 | 久久成人精品视频 | 99精品视频免费观看 | 亚洲成人免费视频 | 91视频久久 | 天天操操| 男女那个视频 | 欧美日韩一区二区三区在线观看 | 青青草免费在线视频 | 日韩第一页 | 亚洲欧美中文日韩在线v日本 | 国产精品一区二区欧美 | 国产亚洲一区二区精品 | 91精品国产综合久久久久久丝袜 | 国产一区中文字幕 | 亚洲一区二区视频在线播放 | 亚洲高清在线 | 久久久久久亚洲精品 | 国产1区2区3区 | 久久久免费 | 免费的一级视频 | 久久久久久免费毛片精品 | 久久99久久99精品免视看婷婷 | 午夜av电影 | 这里只有精品99re | 亚洲一区二区视频 | 免费视频一区二区 | 亚洲人在线 | 日韩在线一区二区三区 | 国产区在线视频 | 成人不卡 | 中文字幕av一区二区三区 | 久久99久久98精品免观看软件 | 美女视频黄色的 | 久草在线影 | 亚洲二区视频 | 亚洲手机在线 | 日韩精品免费在线观看 |