最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談MySQL的性能優(yōu)化

 更新時(shí)間:2023年08月25日 09:40:49   作者:摳腳的大灰狼  
這篇文章主要介紹了淺談MySQL的性能優(yōu)化,MySQL性能優(yōu)化是通過對(duì)數(shù)據(jù)庫的配置、查詢優(yōu)化以及索引優(yōu)化等手段提高數(shù)據(jù)庫的響應(yīng)速度和處理能力,本文從多個(gè)層面對(duì)mysql性能優(yōu)化進(jìn)行了小結(jié),需要的朋友可以參考下

服務(wù)器層面

  • innodb_buffer_pool_size

將緩沖池的大小設(shè)置的盡可能大,比如設(shè)為總內(nèi)存的3/4。這樣可以減少mysql的磁盤IO次數(shù),使得盡可能地從緩沖池里讀數(shù)據(jù)

  • innodb_log_file_size

在生產(chǎn)環(huán)境下,可以盡可能地把一些日志開關(guān)給關(guān)掉。比如通用查詢?nèi)罩?,慢查詢?nèi)罩荆e(cuò)誤日志。并且,將redo log的大小設(shè)置的足夠大,避免由于redo log過小,導(dǎo)致頻繁的臟頁刷磁盤

  • innodb_flush_log_at_trx_commit

當(dāng)對(duì)數(shù)據(jù)的安全性要求不是那么高的時(shí)候,可以考慮將此參數(shù)設(shè)為0或者2,減少刷磁盤頻率

表設(shè)計(jì)層面

  • 對(duì)于統(tǒng)計(jì)和分析類等對(duì)實(shí)時(shí)性要求不高的需求(OLAP),設(shè)計(jì)中間表,避免直接查大量的raw data
  • 創(chuàng)建合理的冗余字段,以減少連表查詢
  • 表中不經(jīng)常使用的字段,或者存儲(chǔ)了過多字段,考慮拆表
  • 每張表都要有個(gè)主鍵,且主鍵最好是自增的int類型

SQL語句層面

索引優(yōu)化

  1. 為經(jīng)常出現(xiàn)在where條件中的字段,需要排序的字段創(chuàng)建合適的索引(當(dāng)讀多寫少時(shí),可以考慮創(chuàng)建索引)
  2. 當(dāng)需要對(duì)多個(gè)列建索引時(shí),優(yōu)先考慮組合索引,而不是多個(gè)單列索引,并且合理的組織組合索引的順序,將篩選粒度大的列,放到組合索引的最左
  3. 盡量使用覆蓋索引,而不要使用SELECT * ,可避免回表查詢

LIMIT優(yōu)化

  1. 若預(yù)計(jì)查詢結(jié)果只有1條,使用LIMIT 1可以提前終止全表掃描
  2. 子查詢優(yōu)化

當(dāng)使用LIMIT進(jìn)行分頁時(shí),頁碼過大時(shí),LIMIT的偏移量會(huì)很大,此時(shí)會(huì)導(dǎo)致MySQL掃描大量不需要的行,然后再丟棄,性能很差。

比如 LIMIT 10000,20 ,會(huì)先掃描前10000行,然后丟棄,最后取10000后的20行。

此時(shí)可以使用子查詢來做優(yōu)化

-- 原SQL
select * from product limit 10000,20;
-- 優(yōu)化后的SQL
select * from product where id >(select id from product order by id limit 10000,1) limit 20;
-- 由于子查詢使用了id主鍵索引,且查詢是覆蓋索引,可以很快的定位到10000的位置
-- 當(dāng)單表查詢,且主鍵已經(jīng)是排序好的,可以直接簡寫如下
select * from product where id > 10000 limit 20;

其他優(yōu)化

  1. 統(tǒng)計(jì)數(shù)量時(shí),盡量用count(1),或count(列),而不要用count(*)
  2. 兩張表進(jìn)行關(guān)聯(lián)時(shí),關(guān)聯(lián)字段最好都建立索引,且最好字段類型一致
  3. where 條件中不使用not in (可使用not exists)
  4. 合理使用慢查詢?nèi)罩?,explain查看執(zhí)行計(jì)劃,show profile 查看SQL執(zhí)行時(shí)的資源使用情況

到此這篇關(guān)于淺談MySQL的性能優(yōu)化的文章就介紹到這了,更多相關(guān)MySQL性能優(yōu)化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql中如何查詢多個(gè)表中的數(shù)據(jù)量

    mysql中如何查詢多個(gè)表中的數(shù)據(jù)量

    這篇文章主要介紹了mysql中如何查詢多個(gè)表中的數(shù)據(jù)量問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • MySQL中優(yōu)化CPU使用的詳細(xì)指南

    MySQL中優(yōu)化CPU使用的詳細(xì)指南

    優(yōu)化MySQL的CPU使用可以顯著提高數(shù)據(jù)庫的性能和響應(yīng)時(shí)間,本文為大家整理了一些優(yōu)化CPU使用的方法,大家可以根據(jù)需要進(jìn)行選擇
    2025-08-08
  • MySQL查詢優(yōu)化與事務(wù)實(shí)戰(zhàn)教程

    MySQL查詢優(yōu)化與事務(wù)實(shí)戰(zhàn)教程

    文章介紹了MySQL查詢語法與事務(wù)管理,涵蓋InnoDB/MyISAM區(qū)別、多表連接、分組統(tǒng)計(jì)、子查詢、分頁技術(shù),及事務(wù)四大特性和隔離級(jí)別(讀未提交、讀已提交、可重復(fù)讀、可串行化),并強(qiáng)調(diào)了參數(shù)化查詢的重要性以防范SQL注入,感興趣的朋友一起看看吧
    2025-07-07
  • mysql容器之間的replication配置實(shí)例詳解

    mysql容器之間的replication配置實(shí)例詳解

    這篇文章主要給大家介紹了關(guān)于mysql容器之間replication配置的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • mysql8.0.19忘記密碼處理方法詳解

    mysql8.0.19忘記密碼處理方法詳解

    這篇文章主要介紹了mysql8.0.19忘記密碼處理方法詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • MySQL實(shí)現(xiàn)去重的幾種方法小結(jié)

    MySQL實(shí)現(xiàn)去重的幾種方法小結(jié)

    在MySQL中,SELECT DISTINCT 和 GROUP BY 可以用來去除重復(fù)記錄,二者有相似的功能,但在某些情況下有所不同,本文將通過代碼示例給大家詳細(xì)介紹這幾種方法,感興趣的小伙伴跟著小編一起來看看吧
    2024-07-07
  • 免安轉(zhuǎn)MySQL服務(wù)的啟動(dòng)與停止方法

    免安轉(zhuǎn)MySQL服務(wù)的啟動(dòng)與停止方法

    免安轉(zhuǎn)MySQL服務(wù)的啟動(dòng)與停止方法,可以不用安裝解壓以后即可執(zhí)行,對(duì)于老手推薦,新手建議用安裝版本。
    2011-03-03
  • MySQL如何查詢客戶端連接情況

    MySQL如何查詢客戶端連接情況

    這篇文章主要介紹了MySQL如何查詢客戶端連接情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 詳解MySQL如何交換兩列值數(shù)據(jù)

    詳解MySQL如何交換兩列值數(shù)據(jù)

    最近遇到了需要將表里的兩列值進(jìn)行互換,原因是存庫時(shí)值存放反了,在編碼語言中,我們一般可以通過定義一個(gè)臨時(shí)變量c,將b賦值給c,a賦值給b,c賦值給a就能實(shí)現(xiàn)a和b的值互換,那么,在mysql中,非儲(chǔ)存過程的sql語句,沒有定義變量的過程,如何實(shí)現(xiàn)呢,接下來由小編給大家介紹一下
    2024-01-01
  • MySQL8.0數(shù)據(jù)庫開窗函數(shù)圖文詳解

    MySQL8.0數(shù)據(jù)庫開窗函數(shù)圖文詳解

    開窗函數(shù)為將要被操作的行的集合定義一個(gè)窗口,它對(duì)一組值進(jìn)行操作,不需要使用GROUP BY子句對(duì)數(shù)據(jù)進(jìn)行分組,能夠在同一行中同時(shí)返回基礎(chǔ)行的列和聚合列,這篇文章主要給大家介紹了關(guān)于MySQL8.0數(shù)據(jù)庫開窗函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2023-06-06

最新評(píng)論

五大连池市| 东台市| 烟台市| 潍坊市| 烟台市| 达拉特旗| 沾益县| 山丹县| 景谷| 白水县| 图们市| 连山| 习水县| 晋江市| 凤山市| 民县| 磐石市| 醴陵市| 读书| 开封市| 东平县| 邢台市| 龙陵县| 达日县| 兴化市| 泗阳县| 临沂市| 桓台县| 原阳县| 阳泉市| 南陵县| 虹口区| 开原市| 阳高县| 博湖县| 新营市| 绵竹市| 秭归县| 罗定市| 白朗县| 黄山市|