




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
安装完版的安装完版的mysql5.6之后,在很少的连接数及数据的状况下,觉察内存占用竟然到达了500M左右,这mysql5.6GA版本性能提升显著,但默认的缓存设置对于小型站点并不合理。以下供给一些通过修改mysql配置文件中的参数以降低内存占用的思路:mysql5.6的配置文件位置:Windows系统在C:\ProgramData\MySQL\MySQLServer5.6\my.iniLinux系统在\etc\f。修改以下三个主要的关于缓存的参数可以起到比较明显的降低内存的效果,以下是mysql5.6默认的设置:performance_schema_max_table_instances12500table_definition_cache1400table_open_cache2000可以调成(依据实际状况自行调整):performance_schema_max_table_instances600table_definition_cache400table_open_cache256mysql5.6400-500M100Mmysql效劳的命令是:Windows系统:netstopmysqld(mysql效劳名)netstartmysqld(mysql效劳名)Linux系统:servicemysqldstopservicemysqldstart下面列出了对性能优化影响较大的主要变量,主要分为连接恳求的变量和缓冲区变量。下面列出了对性能优化影响较大的主要变量,主要分为连接恳求的变量和缓冲区变量。1.1)连接恳求的变量:max_connectionsMySQL的最大连接数,增加该值增加mysqld要求的文件描述符的数量。假设效劳器的并发连接恳求量比较大,建议调高此值,以增加并行连接数量,固然这建立在机器能支撑的状况下,由于假设连接数越多,介于MySQL会为每个连接供给连接缓冲区,就会开销越多的内存,所以要适当调整该值,不能盲目提高设值。数值过小会常常消灭ERROR1040:Toomanyconnections错误,可以过’conn%’通配符查看当前状态的连接数量,以定夺该值的大小。showvariableslike‘max_connections’最大连接数showstatuslike‘max_used_connections’响应的连接数如下:mysql>showvariableslike‘max_connections‘;+———————–+——-+|Variable_name |Value|+———————–+——-+|max_connections|256 |+———————–+——-+mysql>showstatuslike‘max%connections‘;+———————–+——-+|Variable_name|Value|+—————————-+——-+|max_used_connections|256|+—————————-+——-+max_used_connections/max_connections*100%〔抱负值≈85%〕假设max_used_connections跟max_connections一样那么就是max_connections设置过低或者超过效劳器负10%则设置过大。back_logMySQL能暂存的连接数量。当主要MySQL线程在一个很短时间内得到格外多的连接恳求,这就起作用。假设MySQL的连接数据到达max_connections时,来的恳求将会被存在堆栈中,以等待某一连接释放资源,该堆back_log,假设等待连接的数量超过back_log,将不被授予连接资源。back_logMySQL在一个短时间内有很多连接,你需要增加它,换句话说,这值对到来的TCP/IP连接的侦听队列的大小。当观看你主机进程列表〔mysql>showfullprocesslist〕,觉察大量264084|unauthenticateduser|xxx.xxx.xxx.xxx|NULL|Connect|NULL|login|NULL的待连接进程时,就要加大back_log的值了。50128512的整数。interactive_timeout一个交互连接在被效劳器在关闭前等待行动的秒数。一个交互的客户被定义为对mysql_real_connect使用CLIENT_INTERACTIVE288007200。2.缓冲区变量全局缓冲:key_buffer_sizekey_buffer_size指定索引缓冲区的大小,它打算索引处理的速度,尤其是索引读的速度。通过检查状态值Key_read_requests和Key_readskey_buffer_sizekey_reads/key_read_requests1:100,1:1000更好〔上述状态值可以使用SHOWSTATUSLIKE‘key_read%’获得〕。key_buffer_sizeMyISAM表起作用。即使你不使用MyISAM表,但是内部的临时磁盘表是MyISAM表,也要使用该值。可以使用检查状态值created_tmp_disk_tables得知详情。举例如下:mysql>showvariableslike‘key_buffer_size‘;+——————-+————+|Variable_name|Value |+———————+————+|key_buffer_size|536870912|+———————-+————+key_buffer_size512MBkey_buffer_size的使用状况:mysql>showglobalstatuslike‘key_read%‘;+————————+————-+|Variable_name |Value |+————————+————-+|Key_read_requests|27813678764||Key_reads |6798830 |+————————+————-+一共有278136787646798830个恳求在内存中没有找到直接从硬盘读取索引,计算索引未命中缓存的概率:key_cache_miss_rate=Key_reads/Key_read_requests*100%1/1000左右较好8388600(8M)4GB268435456(256MB)。query_cache_size使用查询缓冲,MySQL将查询结果存放在缓冲区中,今后对于同样的SELECT语句〔区分大小写〕,将直接从缓冲区中读取结果。Qcache_*,可以知道query_cache_size设置是否合理〔上述状态值可以使用SHOWSTATUSLIKE‘Qcache%’获得〕Qcache_lowmem_prunes的值格外大,则说明常常消灭缓冲不够的状况,假设Qcache_hits的值也格外大,则说明查询缓冲使用格外频繁,此时需要增加缓冲大小;假设Qcache_hits的值不大,则说明你的查询重复率很低,这种状况下使用查询缓冲反而会影响效率,那么可以考虑不用查询缓冲。SELECTSQL_NO_CACHE可以明确表示不使用查询缓冲。与查询缓冲有关的参数还有query_cache_type、query_cache_limit、query_cache_min_res_unit。query_cache_type0、1、2SESSION级的变量。query_cache_limit1M。query_cache_min_res_unit4.14K。检查状态值Qcache_free_blocks,假设该值格外大,则说明缓冲区中碎片很多,这就说明查询结果都比较小,此时需要减小query_cache_min_res_unit。举例如下:mysql>showglobalstatuslike‘qcache%‘;+——————————-+—————–+|Variable_name |Value |+——————————-+—————–+|Qcache_free_blocks |22756 ||Qcache_free_memory |76764704 ||Qcache_hits |213028692||Qcache_inserts |208894227 ||Qcache_lowmem_prunes |4010916 ||Qcache_not_cached |13385031 ||Qcache_queries_in_cache|43560 ||Qcache_total_blocks |111212 |+——————————-+—————–+mysql>showvariableslike‘query_cache%‘;+————————————–+————–+|Variable_name |Value |+————————————–+———–+|query_cache_limit |2097152 ||query_cache_min_res_unit |4096 ||query_cache_size |203423744||query_cache_type |ON ||query_cache_wlock_invalidate|OFF |+————————————–+—————+查询缓存碎片率=Qcache_free_blocks/Qcache_total_blocks*100%假设查询缓存碎片率超过20%,可以用FLUSHQUERYCACHE整理缓存碎片,或者试试减小query_cache_min_res_unit,假设你的查询都是小数据量的话。查询缓存利用率=(query_cache_size–Qcache_free_memory)/query_cache_size*100%25%query_cache_size80%以上Qcache_lowmem_prunes>50query_cache_size可能有点小,要不就是碎片太多。查询缓存命中率=(Qcache_hits–Qcache_inserts)/Qcache_hits*100%例如效劳器查询缓存碎片率=20.46%,查询缓存利用率=62.26%,查询缓存命中率=1.94%,命中率很差,可能写操作比较频繁吧,而且可能有些碎片。每个连接的缓冲record_buffer_size每个进展一个挨次扫描的线程为其扫描的每张表安排这个大小的一个缓冲区。假设你做很多挨次扫描,你可能想131072(128K)16773120(16M)read_rnd_buffer_size随机读缓冲区大小。当按任意挨次读取行时(例如,依据排序挨次),将安排一个随机读缓存区。进展排序查询时,MySQL会首先扫描一遍该缓冲,以避免磁盘搜寻,提高查询速度,假设需要排序大量数据,可适当调高该值。MySQL会为每个客户连接发放该缓冲空间,所以应尽量适当设置该值,以避开内存开销过大。一般可设置为16Msort_buffer_size每个需要进展排序的线程安排该大小的一个缓冲区。增加这值加速ORDERBY或GROUPBY操作。2097144(2M)16777208(16M)。join_buffer_size联合查询操作所能使用的缓冲区大小。record_buffer_size,read_rnd_buffer_size,sort_buffer_size,join_buffer_size为每个线程独占,也就是说,假设10016M*100table_cache表高速缓存的大小。每当MySQL访问一个表时,假设在表缓冲区中还有空间,该表就被翻开并放入其中,这样可以更快地访问表内容。通过检查峰值时间的状态值Open_tables和Opened_tables,可以打算是否需要增加table_cacheopen_tablestable_cacheopened_tables在不断增长,那么你就需table_cache的值了〔上述状态值可以使用SHOWSTATUSLIKE‘Open%tables’获得〕。留意,不能盲目地把table_cache设置成很大的值。假设设置得太高,可能会造成文件描述符缺乏,从而造成性能不稳定或者连接失败。1G128-2564GB256M384M。max_heap_table_size用户可以创立的内存表(memorytable)的大小。这个值用来计算内存表的最大行数值。这个变量支持动态转变,set@max_heap_table_size=#这个变量和tmp_table_size一起限制了内部内存表的大小。假设某个内部heap〔〕表大小超过heapMyISAM表。tmp_table_sizetmp_table_size选项来增加一张临时表的大小,例如做高级GROUPBY操作生成的临时表。假设调高该值,MySQLheap表的大小,可到达提高联接查询速度的效果,建议尽量优化查询,要确保查询过程中生成的临时表在内存中,避开临时表过大导致生成基于硬盘的MyISAM表。mysql>showglobalstatuslike‘created_tmp%‘;+——————————–+———+|Variable_name |Value |+———————————-+———+|Created_tmp_disk_tables|21197||Created_tmp_files |58 ||Created_tmp_tables |1771587|+——————————–+———–+每次创立临时表,Created_tmp_tables增加,假设临时表大小超过tmp_table_size,则是在磁盘上创立临时表,Created_tmp_disk_tables也增加,Created_tmp_files表示MySQL置是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度公司对公司跨境电商物流借款合同
- 二零二五年度离婚后再婚无子女家庭财产分割及共同生活协议
- 2025年度网络安全企业员工入职保密与竞业限制合同
- 二零二五年度烟草专卖许可证及区域市场分销权转让合同
- 2025年度特种作业安全协议书:包工头与工人安全保障
- 二零二五年度汽修厂汽车维修市场分析承包协议
- 2025年度新能源储能技术公司成立合作协议
- 幼儿园实习教师实习期间安全责任及意外伤害赔偿合同
- 部编版小学道德与法治五年级下册1《读懂彼此的心》课件
- 校领导发言稿
- 工程分包商履约情况与进度关联分析
- 培训业务的竞争对手分析与对策
- 供应商QSA-QPA评鉴表
- 安全生产个台账内容
- 建设工程项目-月度安全检查表
- 硬件设计的模块化
- 贵州教育大讲堂《科技教育之美“中国天眼”的前世今生》观后感11篇
- 组织病理学技术部分
- 家长会课件:三年级上学期家长会课件
- 管辖权异议申请书(模板)
- 2023测绘地理信息技能人员职业分类和能力评价
评论
0/150
提交评论