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

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

安裝完 MySQL 后必須調整的 10 項配置

瀏覽:8日期:2023-10-17 09:04:34

當我們被人雇來監測MySQL性能時,人們希望我們能夠檢視一下MySQL配置然后給出一些提高建議。許多人在事后都非常驚訝,因為我們建議他們僅僅改動幾個設置,即使是這里有好幾百個配置項。這篇文章的目的在于給你一份非常重要的配置項清單。

我們曾在幾年前在博客里給出了這樣的建議,但是MySQL的世界變化實在太快了!

寫在開始前…

即使是經驗老道的人也會犯錯,會引起很多麻煩。所以在盲目的運用這些推薦之前,請記住下面的內容:

一次只改變一個設置!這是測試改變是否有益的唯一方法。大多數配置能在運行時使用SET GLOBAL改變。這是非常便捷的方法它能使你在出問題后快速撤銷變更。但是,要永久生效你需要在配置文件里做出改動。一個變更即使重啟了MySQL也沒起作用?請確定你使用了正確的配置文件。請確定你把配置放在了正確的區域內(所有這篇文章提到的配置都屬于 [mysqld])服務器在改動一個配置后啟不來了:請確定你使用了正確的單位。例如,innodb_buffer_pool_size的單位是MB而max_connection是沒有單位的。不要在一個配置文件里出現重復的配置項。如果你想追蹤改動,請使用版本控制。不要用天真的計算方法,例如”現在我的服務器的內存是之前的2倍,所以我得把所有數值都改成之前的2倍“。基本配置

你需要經常察看以下3個配置項。不然,可能很快就會出問題。

innodb_buffer_pool_size:這是你安裝完InnoDB后第一個應該設置的選項。緩沖池是數據和索引緩存的地方:這個值越大越好,這能保證你在大多數的讀取操作時使用的是內存而不是硬盤。典型的值是5-6GB(8GB內存),20-25GB(32GB內存),100-120GB(128GB內存)。

innodb_log_file_size這是redo日志的大小。 redo日志被用于確保寫操作快速而可靠并且在崩潰時恢復。一直到MySQL 5.1,它都難于調整,因為一方面你想讓它更大來提高性能,另一方面你想讓它更小來使得崩潰后更快恢復。幸運的是從MySQL 5.5之后,崩潰恢復的性能的到了很大提升,這樣你就可以同時擁有較高的寫入性能和崩潰恢復性能了。一直到MySQL 5.5,redo日志的總尺寸被限定在4GB(默認可以有2個log文件)。這在MySQL 5.6里被提高。

一開始就把innodb_log_file_size設置成512M(這樣有1GB的redo日志)會使你有充裕的寫操作空間。如果你知道你的應用程序需要頻繁的寫入數據并且你使用的時MySQL 5.6,你可以一開始就把它這是成4G。

max_connections:如果你經常看到‘Too many connections’錯誤,是因為max_connections的值太低了。這非常常見因為應用程序沒有正確的關閉數據庫連接,你需要比默認的 151連接數更大的值。max_connection值被設高了(例如1000或更高)之后一個主要缺陷是當服務器運行1000個或更高的活動事務時會變 的沒有響應。在應用程序里使用連接池或者在MySQL里使用進程池有助于解決這一問題。

InnoDB配置

從MySQL 5.5版本開始,InnoDB就是默認的存儲引擎并且它比任何其他存儲引擎的使用都要多得多。那也是為什么它需要小心配置的原因。

innodb_file_per_table:這項設置告知InnoDB是否需要將所有表的數據和索引存放在共享表空間里(innodb_file_per_table = OFF) 或者為每張表的數據單獨放在一個.ibd文件(innodb_file_per_table = ON)。每張表一個文件允許你在drop、truncate或者rebuild表時回收磁盤空間。這對于一些高級特性也是有必要的,比如數據壓縮。但是它不會帶來任何性能收益。你不想讓每張表一個文件的主要場景是:有非常多的表(比如10k+)。

MySQL 5.6中,這個屬性默認值是ON,因此大部分情況下你什么都不需要做。對于之前的版本你必須在加載數據之前將這個屬性設置為ON,因為它只對新創建的表有影響。

innodb_flush_log_at_trx_commit:默認值為1,表示InnoDB完全支持 ACID特性。當你的主要關注點是數據安全的時候這個值是最合適的,比如在一個主節點上。但是對于磁盤(讀寫)速度較慢的系統,它會帶來很巨大的開銷,因為每次將改變flush到redo日志都需要額外的fsyncs。將它的值設置為2會導致不太可靠(unreliable)因為提交的事務僅僅每秒才 flush一次到redo日志,但對于一些場景是可以接受的,比如對于主節點的備份節點這個值是可以接受的。如果值為0速度就更快了,但在系統崩潰時可能 丟失一些數據:只適用于備份節點。

innodb_flush_method: 這項配置決定了數據和日志寫入硬盤的方式。一般來說,如果你有硬件RAID控制器,并且其獨立緩存采用write-back機制,并有著電池斷電保護,那 么應該設置配置為O_DIRECT;否則,大多數情況下應將其設為fdatasync(默認值)。sysbench是一個可以幫助你決定這個選項的好工 具。

innodb_log_buffer_size: 這項配置決定了為尚未執行的事務分配的緩存。其默認值(1MB)一般來說已經夠用了,但是如果你的事務中包含有二進制大對象或者大文本字段的話,這點緩存 很快就會被填滿并觸發額外的I/O操作。看看Innodb_log_waits狀態變量,如果它不是0,增加 innodb_log_buffer_size。

其他設置

query_cache_size:query cache(查詢緩存)是一個眾所周知的瓶頸,甚至在并發并不多的時候也是如此。 最佳選項是將其從一開始就停用,設置query_cache_size = 0(現在MySQL 5.6的默認值)并利用其他方法加速查詢:優化索引、增加拷貝分散負載或者啟用額外的緩存(比如memcache或redis)。如果你已經為你的應用啟 用了query cache并且還沒有發現任何問題,query cache可能對你有用。這是如果你想停用它,那就得小心了。

log_bin:如果你想讓數據庫服務器充當主節點的備份節點,那么開啟二進制日志是必須的。如果這么做了之 后,還別忘了設置server_id為一個唯一的值。就算只有一個服務器,如果你想做基于時間點的數據恢復,這(開啟二進制日志)也是很有用的:從你最近的備份中恢復(全量備份),并應用二進制日志中的修改(增量備份)。二進制日志一旦創建就將永久保存。所以如果你不想讓磁盤空間耗盡,你可以用PURGE BINARY LOGS來清除舊文件,或者設置expire_logs_days來指定過多少天日志將被自動清除。

記錄二進制日志不是沒有開銷的,所以如果你在一個非主節點的復制節點上不需要它的話,那么建議關閉這個選項。

skip_name_resolve:當客戶端連接數據庫服務器時,服務器會進行主機名解析,并且當DNS很慢時,建立連接也會很慢。因此建議在啟動服務器時關閉skip_name_resolve選項而不進行DNS查找。唯一的局限是之后GRANT語句中只能使用IP地址了,因此在添加這項設置到一個已有系統中必須格外小心。

總結

當然還有其他的設置可以起作用,取決于你的負載或硬件:在慢內存和快磁盤、高并發和寫密集型負載情況下,你將需要特殊的調整。然而這里的目標是使得 你可以快速地獲得一個穩健的MySQL配置,而不用花費太多時間在調整一些無關緊要的MySQL設置或讀文檔找出哪些設置對你來說很重要上。

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 磁棒电感生产厂家-电感器厂家-电感定制-贴片功率电感供应商-棒形电感生产厂家-苏州谷景电子有限公司 | 青岛球场围网,青岛车间隔离网,青岛机器人围栏,青岛水源地围网,青岛围网,青岛隔离栅-青岛晟腾金属制品有限公司 | 水厂自动化-水厂控制系统-泵站自动化|控制系统-闸门自动化控制-济南华通中控科技有限公司 | 合肥通道闸-安徽车牌识别-人脸识别系统厂家-安徽熵控智能技术有限公司 | 粉末包装机-给袋式包装机-全自动包装机-颗粒-液体-食品-酱腌菜包装机生产线【润立机械】 | 沙盘模型公司_沙盘模型制作公司_建筑模型公司_工业机械模型制作厂家 | 影合社-影视人的内容合作平台 | 瑞典Blueair空气净化器租赁服务中心-专注新装修办公室除醛去异味服务! | 环压强度试验机-拉链拉力试验机-上海倾技仪器仪表科技有限公司 | 浙江美尔凯特智能厨卫股份有限公司 | 长江船运_国内海运_内贸船运_大件海运|运输_船舶运输价格_钢材船运_内河运输_风电甲板船_游艇运输_航运货代电话_上海交航船运 | 钢结构厂房造价_钢结构厂房预算_轻钢结构厂房_山东三维钢结构公司 | 翻斗式矿车|固定式矿车|曲轨侧卸式矿车|梭式矿车|矿车配件-山东卓力矿车生产厂家 | 刚性-柔性防水套管-橡胶伸缩接头-波纹管补偿器-启腾供水材料有限公司 | 蜘蛛车-登高车-高空作业平台-高空作业车-曲臂剪叉式升降机租赁-重庆海克斯公司 | 水质监测站_水质在线分析仪_水质自动监测系统_多参数水质在线监测仪_水质传感器-山东万象环境科技有限公司 | 焊接烟尘净化器__焊烟除尘设备_打磨工作台_喷漆废气治理设备 -催化燃烧设备 _天津路博蓝天环保科技有限公司 | 深圳善跑体育产业集团有限公司_塑胶跑道_人造草坪_运动木地板 | 闪电优家-卫生间防水补漏_酒店漏水渗水维修_防水堵漏公司 | 东莞工厂厂房装修_无尘车间施工_钢结构工程安装-广东集景建筑装饰设计工程有限公司 | 全国国际学校排名_国际学校招生入学及学费-学校大全网 | NBA直播_NBA直播免费观看直播在线_NBA直播免费高清无插件在线观看-24直播网 | 东莞动力锂电池保护板_BMS智能软件保护板_锂电池主动均衡保护板-东莞市倡芯电子科技有限公司 | 上海璟文空运首页_一级航空货运代理公司_机场快递当日达 | 开业庆典_舞龙舞狮_乔迁奠基仪式_开工仪式-神挚龙狮鼓乐文化传媒 | 北京浩云律师事务所-企业法律顾问_破产清算等公司法律服务 | 聚丙烯酰胺_厂家_价格-河南唐达净水材料有限公司 | IWIS链条代理-ALPS耦合透镜-硅烷预处理剂-上海顶楚电子有限公司 lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 杭州火蝠电商_京东代运营_拼多多全托管代运营【天猫代运营】 | 高防护蠕动泵-多通道灌装系统-高防护蠕动泵-www.bjhuiyufluid.com慧宇伟业(北京)流体设备有限公司 | 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | 流量卡中心-流量卡套餐查询系统_移动电信联通流量卡套餐大全 | 学生作文网_中小学生作文大全与写作指导 | 磁力抛光机_磁力研磨机_磁力去毛刺机_精密五金零件抛光设备厂家-冠古科技 | 尾轮组_头轮组_矿用刮板_厢式刮板机_铸石刮板机厂家-双驰机械 | 菲希尔X射线测厚仪-菲希尔库伦法测厚仪-无锡骏展仪器有限责任公司 | 2025黄道吉日查询、吉时查询、老黄历查询平台- 黄道吉日查询网 | 合同书格式和范文_合同书样本模板_电子版合同,找范文吧 | 圈酒招商网【jiushuitv.com】_酒水招商_代理_加盟平台 | 武汉刮刮奖_刮刮卡印刷厂_为企业提供门票印刷_武汉合格证印刷_现金劵代金券印刷制作 - 武汉泽雅印刷有限公司 | 北京银联移动POS机办理_收银POS机_智能pos机_刷卡机_收银系统_个人POS机-谷骐科技【官网】 |