电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

MySQL性能優化技巧分享

瀏覽:139日期:2023-10-12 09:43:33

MySQL性能優化

在互聯網公司MySQL的使用非常廣泛,大家經常會有MySQL性能優化方面的需求。整理了一些在MySQL優化方面的實用技巧。

Schema與數據類型優化

整數通常是標識列最好的選擇,因為它們很快并且可以使用AUTO_INCREMENT 完全“隨機”的字符串(如:MD5()、SHA1()或者UUID()等產生的字符串)會任意分布在很大的空間內,會導致INSERT以及一些SELECT語句變的很慢 如果希望查詢執行得快速且并發性好,單個查詢最好不要做太多的關聯查詢(互聯網公司非常忌諱關聯查詢),利用程序來完成關聯操作 如果需要對一張比較大的表做表結構變更(ALTER TABLE操作增加一列),建議先拷貝一張與原表結構一樣的表,再將數據復制進去,最后通過重命名將新表的表名稱修改為原表的表名稱。因為在變更表結構的時候很有可能會鎖住整個表,并且可能會有長時間的不可用 避免多表關聯的時候可以適當考慮一些反范式的建表方案,增加一些冗余字段

InnoDB索引優化

如果不是按照索引的最左列開始查找,則無法使用索引 所有的非聚簇索引都需要先通過索引定位到對應的主鍵,然后在到聚簇索引查找數據,所以在定義主鍵索引的時候一定要謹慎 只有當索引的列順序和ORDER BY子句的順序完全一致,并且所有列的排序方向(倒序或者正序)都一樣時,MySQL才能夠使用索引來對結果做排序。有一種情況下ORDER BY子句可以不滿足索引的最左前綴的要求,就是前導列為常量的時候。 在使用like來匹配字符串類型的字段的值時,盡可能的使用前綴匹配like ‘XX%’,避免使用 like ‘%XX’ 哈希索引是基于哈希表實現的,只有精確匹配索引所有列的查詢才有效,也不遵循索引的最左匹配原則 當服務器需要對多個索引做聯合操作時(通常有多個OR條件),建議修改成UNION的方式,這樣方便命中索引 對于如何選擇索引的列順序有一個經驗法則:將選擇性最高的列放到索引最前列 盡可能多的使用覆蓋索引(如果一個索引包含或者說覆蓋所有需要查詢的字段的值,我們就稱之為覆蓋索引),通過EXPLAIN的Extra列可以看到“Using index”信息 當ID為主鍵時,創建索引(A),相當于創建了(A)和(A, ID)兩個索引 表中的索引越多對SELECT、UPDATE和DELETE操作速度變慢,同時占用的內存也會比較多 InnoDB在二級索引上使用共享鎖,但是訪問主鍵索引需要排他鎖 盡可能的使用WHERE IN和WHERE BETWEEN AND的方式來進行范圍查詢 LIMIT的偏移量越大性能越慢 編寫查詢語句時應該避免單行查找、盡可能的使用數據原生順序從而避免額外的排序操作,并盡可能使用索引覆蓋查詢

查詢性能優化

1.對于低效的查詢,通常從兩個方面來分析:

確認應用程序是否在檢索大量超過需要的數據。這通常意味著訪問了太多的行,但有時候可能是訪問了太多的列 確認MySQL服務器層是否在分析大量超過需要的數據行

2.一般MySQL能夠使用以下三種方式應用WHERE條件,從好到壞依次為:

在索引中使用WHERE條件倆過濾不匹配的記錄 使用索引覆蓋掃描來返回記錄 從數據表中返回數據,然后過濾不滿足條件的記錄

3.MySQL從設計上讓連接和斷開連接都很輕量級,在返回一個小的查詢結果方面很高效。在一個通用服務器上,也能夠運行每秒超過10萬的查詢,一個千兆網卡也能輕松滿足每秒超過2000次的查詢,MySQL內部每秒能夠掃描內存中上百萬行數據

4.在刪除大量數據時,建議每次刪除一小批量數據后,暫停一會兒再做下一次的刪除

5.無論如何排序都是一個成本很高的操作,所以從性能角度考慮,應盡可能避免排序或者盡可能避免對大量數據進行排序

6.COUNT()函數有兩種不同的作用:它可以統計某個列值的數量,也可以統計行數。最簡單的就是通過COUNT(*)來統計行數

7.關聯查詢的時候要確保關聯的字段上有索引

8.在數據量很大并且歷史數據需要定期刪除的情況下,可以考慮使用分區表

9.如果定了的索引列和分區列不匹配,會導致查詢無法進行分區過濾

10.外鍵約束盡可能避免,通常通過程序來實現,心中要有外鍵

11.觸發器、存儲過程、自定義函數等最好不要使用

12.盡可能的利用查詢緩存,如果在寫查詢語句的時候有一些不確定的數據(NOW()或者CURRENT_DATE()等)時,則不會被緩存

13.用多個小表代替一個大表對查詢緩存有好處

14.批量寫入時只需要做一次緩存失效,所以相比單條寫入(每寫入一次,緩存就失效)效率更好,對于寫密集型的應用,直接禁用查詢緩存

15.如果緩存的空間太大,在過期操作的時候可能會導致服務器僵死

以上是個人在工作中的經驗總結,如果有描述錯誤的地方希望大家可以幫忙指出,一起交流學習!

到此這篇關于MySQL性能優化技巧分享的文章就介紹到這了,更多相關MySQL性能優化內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 水稻烘干机,小麦烘干机,大豆烘干机,玉米烘干机,粮食烘干机_巩义市锦华粮食烘干机械制造有限公司 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 吸污车_吸粪车_抽粪车_电动三轮吸粪车_真空吸污车_高压清洗吸污车-远大汽车制造有限公司 | 成都LED显示屏丨室内户外全彩led屏厂家方案报价_四川诺显科技 | 气胀轴|气涨轴|安全夹头|安全卡盘|伺服纠偏系统厂家-天机传动 | 一体化预制泵站-一体化提升泵站-一体化泵站厂家-山东康威环保 | 【铜排折弯机,钢丝折弯成型机,汽车发泡钢丝折弯机,线材折弯机厂家,线材成型机,铁线折弯机】贝朗折弯机厂家_东莞市贝朗自动化设备有限公司 | 太空舱_民宿太空舱厂家_移动房屋太空舱价格-豪品建筑 | 盐城网络公司_盐城网站优化_盐城网站建设_盐城市启晨网络科技有限公司 | 江苏农村商业银行招聘网_2024江苏农商行考试指南_江苏农商行校园招聘 | 深圳市源和塑胶电子有限公司-首页 | 广州展览设计公司_展台设计搭建_展位设计装修公司-众派展览装饰 广州展览制作工厂—[优简]直营展台制作工厂_展会搭建资质齐全 | 高效节能电机_伺服主轴电机_铜转子电机_交流感应伺服电机_图片_型号_江苏智马科技有限公司 | 电缆接头-防爆电缆接头-格兰头-金属电缆接头-防爆填料函 | PCB设计,PCB抄板,电路板打样,PCBA加工-深圳市宏力捷电子有限公司 | 正压送风机-多叶送风口-板式排烟口-德州志诺通风设备 | 湖南印刷厂|长沙印刷公司|画册印刷|挂历印刷|台历印刷|杂志印刷-乐成印刷 | Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd | 德州网站开发定制-小程序开发制作-APP软件开发-「两山开发」 | 金属雕花板_厂家直销_价格低-山东慧诚建筑材料有限公司 | 广东佛电电器有限公司|防雷开关|故障电弧断路器|智能量测断路器 广东西屋电气有限公司-广东西屋电气有限公司 | 大米加工设备|大米加工机械|碾米成套设备|大米加工成套设备-河南成立粮油机械有限公司 | 烟台游艇培训,威海游艇培训-烟台市邮轮游艇行业协会 | 彩超机-黑白B超机-便携兽用B超机-多普勒彩超机价格「大为彩超」厂家 | 气体检测仪-氢气检测仪-可燃气体传感器-恶臭电子鼻-深国安电子 | 旅游规划_旅游策划_乡村旅游规划_景区规划设计_旅游规划设计公司-北京绿道联合旅游规划设计有限公司 | 安徽免检低氮锅炉_合肥燃油锅炉_安徽蒸汽发生器_合肥燃气锅炉-合肥扬诺锅炉有限公司 | 颚式破碎机,圆锥破碎机,制砂机-新乡市德诚机电制造有限公司 | 深圳南财多媒体有限公司介绍 | 挤出熔体泵_高温熔体泵_熔体出料泵_郑州海科熔体泵有限公司 | 玉米深加工机械,玉米加工设备,玉米加工机械等玉米深加工设备制造商-河南成立粮油机械有限公司 | 东莞画册设计_logo/vi设计_品牌包装设计 - 华略品牌设计公司 | 作文导航网_作文之家_满分作文_优秀作文_作文大全_作文素材_最新作文分享发布平台 | 乐考网-银行从业_基金从业资格考试_初级/中级会计报名时间_中级经济师 | 印刷人才网 印刷、包装、造纸,中国80%的印刷企业人才招聘选印刷人才网! | 包塑丝_高铁绑丝_地暖绑丝_涂塑丝_塑料皮铁丝_河北创筹金属丝网制品有限公司 | 诸城网站建设-网络推广-网站优化-阿里巴巴托管-诸城恒泰互联 | 宠物店加盟_宠物连锁店_开宠物店-【派多格宠物】 | 【孔氏陶粒】建筑回填陶粒-南京/合肥/武汉/郑州/重庆/成都/杭州陶粒厂家 | PSI渗透压仪,TPS酸度计,美国CHAI PCR仪,渗透压仪厂家_价格,微生物快速检测仪-华泰和合(北京)商贸有限公司 | 事迹材料_个人事迹名人励志故事| 低噪声电流前置放大器-SR570电流前置放大器-深圳市嘉士达精密仪器有限公司 |