mysql常用优化参数
- 修改全站搜索
- 修改my.ini(my.cnf) ,在 [mysqld] 后面加入一行“ft_min_word_len=1”,然后 重启Mysql,再登录网站后台(模块管理->全站搜索)重建全文索引。
- 记录慢查询sql语句,修改my.ini(my.cnf),添加如下代码:
- #log-slow-queries
- long_query_time = 1 #是指 执行超过多久的 sql 会被 log 下来
- log-slow-queries = E:/wamp /logs/slow.log #设置把日志写在那里,可以为空,系统会给一个缺省的文件
- #log-slow-queries = /var /youpath/slow.log linux下 host_name-slow.log
- log-queries-not-using-indexes
- mysql缓存的设置
- mysql>show variables like '%query_cache%'; mysql 本身是有对sql语句缓存的机制的,合理设置我们的mysql缓存可以降低数据库的io资源。
- #query_cache_type= 查 询缓存的方式(默认是 ON)
- query_cache_size 如果你希望禁用查询缓存,设置 query_cache_size=0。禁用了查 询缓存,将没有明显的开销
- query_cache_limit 不缓存大于这个值的结果。(缺省为 1M)
- 查询缓存的统计信息
- mysql> SHOW STATUS LIKE ‘qcache%’;
- Qcache_free_blocks 缓存中相邻内存块的个数。数目大说明可能有碎片。FLUSH QUERY CACHE 会对 缓存中的碎片进行整理,从而得到一个空闲块。
- Qcache_free_memory 缓存中的空闲内存。
- Qcache_hits 每次查询在缓存中命中时就增大。
- Qcache_inserts 每次插入一个查询时就增大。命中次数除以插入次数就是不中比率;用 1 减去这个值就是命中率。在上 面这个例子中,大约有 87% 的查询都在缓存中命中。
- Qcache_lowmem_prunes 缓存出现内存不足并且必须要进行清理以便为更多查询提供空间的次数。这个数字最好长时间 来看;如果这个数字在不断增长,就表示可能碎片非常严重,或者内存很少。(上面的 free_blocks 和 free_memory 可以告诉您属于 哪种情况)。
- Qcache_not_cached 不适合进行缓存的查询的数量,通常是由于这些查询不是 SELECT 语句。
- Qcache_queries_in_cache 当前缓存的查询(和响应)的数量。
- Qcache_total_blocks 缓存中块的数量。通常,间隔几秒显示这些变量就可以看出区别,这可以帮助确定缓存是否正在 有效地使用。运行 FLUSH STATUS 可以重置一些计数器,如果服务器已经运行了一段时间,这会非常有帮助。
- my.ini(my.conf)配置
- key_buffer_size = 256M
- # key_buffer_size指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能。 对于内存在4GB左右的 服务器该参数可设置为256M或384M。注意:该参数值设置的过大反而会是服务器整体效率降低
- max_allowed_packet = 4M
- thread_stack = 256K
- table_cache = 128K
- sort_buffer_size = 6M
- 查询排序时所能使用的缓冲区大小。注意:该参数对应的分配内存是每连接独占!如果有100个连接,那么实际分配的总共排序缓冲区大小 为100 × 6 = 600MB。所以,对于内存在4GB左右的服务器推荐设置为6-8M。
- read_buffer_size = 4M
- 读查询操作所能使用的缓冲区大小。和sort_buffer_size一样,该参数对应的分配内存也是每个连接独享!
- join_buffer_size = 8M
- 联合查询操作所能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内存也是每个连接独享!
- myisam_sort_buffer_size = 64M
- table_cache = 512
- thread_cache_size = 64
- query_cache_size = 64M
- 指定MySQL查询缓冲区的大小。可以通过在MySQL控制台执行以下命令观察:
- # > SHOW VARIABLES LIKE '%query_cache%';
- # > SHOW STATUS LIKE 'Qcache%';
- # 如果Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况;
- #如果Qcache_hits的值非常大,则表明查询缓冲使用非常频繁,如果该值较小反而会影响效率,那么可以考虑不用查询缓冲;
- Qcache_free_blocks,如 果该值非常大,则表明缓冲区中碎片很多
- tmp_table_size = 256M
- max_connections = 768
- 指定MySQL允许的最大连接进程数。如果在访问论坛时经常出现Too Many Connections的错误提示,则需要增大该 参数值。
- max_connect_errors = 10000000
- wait_timeout = 10
- 指定一个请求的最大连接时间,对于4GB左右内存的服务器可以设置为5-10。
- thread_concurrency = 8
- 该参数取值为服务器逻辑CPU数量×2,如果服务器有2颗物理CPU,而每颗物理CPU又支持H.T超线程,所以实际取值为 4 × 2 = 8
- skip-networking
- 开启该选项可以彻底关闭MySQL的TCP/IP连接方式,如果WEB服务器是以远程连接的方式访问MySQL数据库服务器则不要开 启该选项!否则将无法正常连接!
mysql常用优化参数的更多相关文章
- MySQL常用配置参数
基本配置: datadir:指定mysql的数据目录位置,用于存放mysql数据库文件.日志文件等. 配置示例:datadir=D:/wamp/mysqldata/Data default-chara ...
- Hive 常用优化参数
常用调优测试语句 : ①显示当前hive环境的参数值: set 参数名; 如: hive> set mapred.map.tasks;mapred.map.tasks; ②设置hi ...
- Mysql常用优化方案
摘自:http://www.jb51.net/article/18934.htm 1.选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也 ...
- MySQL服务优化参数设置参考
l 通用类: key_buffer_size 含义:用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写). 影响:对于MyISAM表的影响不是很大,MyISAM会使用系统的缓存来存储 ...
- mysql性能优化学习笔记-参数介绍及优化建议
MySQL服务器参数介绍 mysql参数介绍(客户端中执行),尽量只修改session级别的参数. 全局参数(新连接的session才会生效,原有已经连接的session不生效) set global ...
- 浅谈MySQL中优化sql语句查询常用的30种方法 - 转载
浅谈MySQL中优化sql语句查询常用的30种方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使 ...
- php面试专题---MySQL常用SQL语句优化
php面试专题---MySQL常用SQL语句优化 一.总结 一句话总结: 原理,万变不离其宗:其实SQL语句优化的过程中,无非就是对mysql的执行计划理解,以及B+树索引的理解,其实只要我们理解执行 ...
- (转)MySQL配置文件mysql.ini参数详解、MySQL性能优化
本文转自:http://www.cr173.com/html/18331_1.html my.ini(Linux系统下是my.cnf),当mysql服务器启动时它会读取这个文件,设置相关的运行环境参数 ...
- MySQL配置文件mysql.ini参数详解、MySQL性能优化
my.ini(Linux系统下是my.cnf),当mysql服务器启动时它会读取这个文件,设置相关的运行环境参数. my.ini分为两块:Client Section和Server Section. ...
随机推荐
- python list 和 tuple, dict 用于迭代代价
#!/usr/bin/env python #-*- coding:utf-8 -*- import time start = time.time() for i in range(1000000): ...
- C#-VS异常处理
VS异常处理 常规 try 可能会产生异常的代码,当一行产生异常,这行下面的代码不执行,转到catch开始执行 catch(system.Exception e) e.message ...
- 闭合浮动的方法css
浮动是一个有意思(你也可以说它很麻烦)的CSS属性,任何元素设置了浮动,层级就提高了,会影响它后面没设置浮动的元素,这些倒霉的被影响者会跑到浮动层的下面去(当然IE6.IE7除外),那解决方法呢? 常 ...
- Codeforces Round #265 (Div. 2) D. Restore Cube 立方体判断
http://codeforces.com/contest/465/problem/D 给定8个点坐标,对于每个点来说,可以随意交换x,y,z坐标的数值.问说8个点是否可以组成立方体. 暴力枚举即可, ...
- Java学习--循环语句1
1. break public class BreakDemo{ // 完成一个四则运算的功能 public static void main(String args[]){ for(int i=0; ...
- 1、K-means
k-means(K均值) 1.无监督聚类算法 2.K---分成K类 3.分类准则:使得样本与各类中心之间的误差平方和最小 --------------------------------------- ...
- Android-Could not find method implementation() for arguments
当AndroidStudio加载工程的时候:报以下错误: 详细错误: Could not find method implementation() for arguments [file collec ...
- iOS AppIcon尺寸
如果提交的ipa包中,未包含必要的Icon就会收到类似的通知,为什么偏偏是Icon-76呢? 因为我们开发的游戏,默认是支持iphone以及ipad的,根据官方提供的参考 Icon-76.png是必须 ...
- [译] 玩转ptrace (一)
[本文翻译自这里: http://www.linuxjournal.com/article/6100?page=0,0,作者:Pradeep Padaia] 你是否曾经想过怎样才能拦截系统调用?你是否 ...
- 预防和避免死锁的方法及银行家算法的java简单实现
预防死锁 (1) 摒弃"请求和保持"条件 基本思想:规定所有进程在开始运行之前,要么获得所需的所有资源,要么一个都不分配给它,直到所需资源全部满足才一次性分配给它. 优点:简单.易 ...