一.mysql的配置都是小写的,使用下划线_或破折号-分割单词,两者是一样的

二.在配置文件中可以用1m,1g等单位,但是用set命令,不能使用单位,默认单位是字节

三.特殊例子
a.query_cache_size变量是全局性的
b.sort_buffer_size变量有全局性默认值,但是可以在回话中改变
c.join_buffer_size有全局性的默认值,可以在会话中设置,但是联接了几个表的查询可能会每个联接都分配一个联接缓冲区,所以每个查询都可能有几个联接缓冲区

四.注意事项
a.key_buffer_size
设置这个变量给键缓存区分配指定大小的空间.但是操作系统只是在实际用到的这些空间的时候才会分配.可以创建多个键缓存.

b.table_cache_size
设置这个变量,不会立即生效,要等到下个线程打开表的时候才会生效.当它生效的时候,mysql会检查变量的值.如果设置的值大于缓存表的数量,线程就把表插入到缓存,否则,就从缓存中删除不用的表,再插入.

c.thread_cache_size(线程缓存的数量)
这个设置不会立即生效,生效到线程关闭的时候.如果有空间存储线程,就缓存.如果不是,直接结束掉线程

d.query_cache_size
在服务启动的时候,mysql会一次性分配所定义的变量内存.如果更新了变量,mysql会删除掉当前缓存的.即便值设置为当前值.

e.read_buffer_size
当查询不断的扫描一个表,mysql会分配一个缓存区.这个缓存区就是read_buffer_size所定义的大小.mysql只有在查询用到的时候,才会分配,而且是一次性分配该变量指定的大小.

f.read_rnd_buffer_size(该变量更精确的名字应该是max_read_rnd_buffer_size)
加速排序操作后的读数据,提高读分类行的速度。如果正对远远大于可用内存的表执行GROUP BY或ORDER BY操作,应增加read_rnd_buffer_size的值.
需要用到时才会分配,并且只分配需要大小的内存.

g.sort_buffer_size(每个线程排序所需要的缓存)
只要发生排序,就会分配,并一次性分配指定大小.不管是否需要这么多

五.myisam调优
1.mysql安装后,会有my-huge.cnf,my-larege.cnf等配置文件,这些配置文件通常适用于myisam
2.key_buffer_size,应该占到保留内存的25%到50%,对于mysql5.0,该变量最大上限是4GB
3.可以创建多个缓存区,这样就可以一次在内存中保存超过4GB以上的索引,为了创建名为key_buffer_1和key_buffer_2,大小都为1GB的缓存区,可以在配置文件中加入
key_buffer_1.key_buffer_size = 1G
key_buffer_2.key_buffer_size = 1G
可以使用CREATE INDEX命令把表映射到缓存
通过下面命令把表t1和t2的索引保存到key_buffer_1上
mysql>CREATE INDEX t1,t2 IN key_buffer_1;

还可以使用LOAD INDEX预加载表索引到缓存中:
mysql>LOAD INDEX INTO CACHE t1,t2;

4.缓存命中率
100 - ( (Key_reads * 100) / Key_read_requests )

下面的命令以10s幅度递增,计算了总的未命中次数
#mysqladmin extended-status -r -i 10 | grep Key_reads

5.没有必要让key_buffer_size大于索引数据大小
#du -sch `find /path/to/mysql/data/directory -name "*.MYI"
通过以上命令,找出存储索引文件的大小

6.myisam数据块大小
myisam_block_size该值确定了该项大小,这与系统页面大小相关.x86架构中,系统页面大小为4k,该值与系统页面大小相同可避免写入等待

六.InnoDB调优
1.InnoDB严重依赖于缓冲池.可以将80%的物理内存分配给它.
innodb_buffer_pool_size确定该大小

2.innodb_max_dirty_pages_pct该值确定了保留在缓存池中被修改的页面的数量.但达到90%的时候,开始数据冲刷到磁盘.该值设置的小,可以更好的吸收写入尖峰.

3.如果使用innodb_file_per_table选项,那么对innodb任何时候打开的.ibd文件还有另外一个限制.它受innodb_open_files的控制.如果可以的话,尽量将innodb_open_files设置的足够大.这样服务器就可以同时保留所有打开的.idb文件

MySQL优化常用的更多相关文章

  1. mysql 优化常用语句

    show status;//查询mysql各种状态: show variables like 'long_query_time';//慢查询的限定时间 set long_query_time=1;// ...

  2. 项目中常用的19条MySQL优化

    声明一下:下面的优化方案都是基于 " Mysql-索引-BTree类型 " 的 一.EXPLAIN 做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划. 下面来个简单 ...

  3. MySQL优化(2)--------常用优化

    前言 之前已经简单介绍了MySQL的优化步骤,那么接下来自然而是就是常用的SQL优化,比如inseer.group by等常用SQL的优化,会涉及SQL语句内部细节(这正是我缺乏的).最后希望自己能记 ...

  4. 项目中常用的MySQL 优化

    本文我们来谈谈项目中常用的MySQL优化方法,共19条,具体如下: 一.EXPLAIN 做MySQL优化,我们要善用EXPLAIN查看SQL执行计划. 下面来个简单的示例,标注(1.2.3.4.5)我 ...

  5. SQL学习笔记之项目中常用的19条MySQL优化

    在写文章之前,首先感谢 飞友科技 陆老师提供的文档.. 声明一下:下面的优化方案都是基于 “ Mysql-索引-BTree类型 ” 的 0x00 EXPLAIN 做MySQL优化,我们要善用 EXPL ...

  6. 项目中常用的MySQL优化方法--壹拾玖条

    1.EXPLAIN 做MySQL优化,我们要善用EXPLAIN查看SQL执行计划. 下面来个简单的示例,标注(1.2.3.4.5)我们要重点关注的数据: type列,连接类型.一个好的SQL语句至少要 ...

  7. 19条常用的MySQL优化方法(转)

    本文我们来谈谈项目中常用的MySQL优化方法,共19条,具体如下:1.EXPLAIN命令做MySQL优化,我们要善用EXPLAIN查看SQL执行计划.下面来个简单的示例,标注(1.2.3.4.5)我们 ...

  8. 项目中常用的19条MySQL优化技巧

    原文:https://segmentfault.com/a/1190000012155267 声明一下:下面的优化方案都是基于 “ Mysql-索引-BTree类型 ” 的 一.EXPLAIN 做My ...

  9. 常用的 19 条 MySQL 优化

    一.EXPLAIN 做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划. 下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据 type列,连接类型.一个好的sql语句至少 ...

随机推荐

  1. 面向服务的体系结构(SOA)——(2)ESB介绍及职责

    企业服务总线(Enterprise Service Bus)是SOA的基础设施,之所以这么说是因为要达到SOA的目标(增强灵活性)就必须有调用服务的方法,ESB的存在有效的保证了消费者能够调用供应者提 ...

  2. Oracle数据库表设计时的注意事项

    表是Oracle数据库中最基本的对象之一.万丈高楼从平地起,这个基础对象对于数据库来说,非常重要.因为其设计是否合理,直接跟数据库的性能相关.从Oracle数据库菜鸟到数据库专家这个过程中,在表设计与 ...

  3. PHP项目:如何用PHP高并发检索数据库?

    对于抢票.秒杀这种业务,我说说自己对这种高并发的理解吧,这里提出个人认为比较可行的几个方案: 方案一:使用队列来实现 可以基于例如MemcacheQ等这样的消息队列,具体的实现方案这么表述吧 比如有1 ...

  4. C++的那些事:函数全解析

    一.函数的结构 函数在C++中可能出现在三种地方,一是函数的定义,它包括了如上图的结构:二是函数的声明,它与函数的定义相比,没有了函数体部分:三则是函数的调用.当然,不同的函数定义可以还会稍有不同,比 ...

  5. loj 1021(状压dp+记忆化搜索)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25887 题目大意:给定的一个某进制下的排列,问它的全排列有多少个能 ...

  6. MapReduce:详解Shuffle过程

    Shuffle过程,也称Copy阶段.reduce task从各个map task上远程拷贝一片数据,并针对某一片数据,如果其大小超过一定的阀值,则写到磁盘上,否则直接放到内存中. 官方的Shuffl ...

  7. Android 利用Gson生成或解析json

    目前手机端和服务端数据交流格式一般是json,而谷歌提供了Gson来解析json.下载Gson:https://code.google.com/p/google-gson/ 下载的放在lib并导入,若 ...

  8. 使用sqljdbc连接mssql数据库,maven生成jar运行后报"Exception in thread "main" java.lang.SecurityException"错误

    错误信息如下: Exception in thread "main" java.lang.SecurityException: Invalid signature file dig ...

  9. sql按天分组

    sql按天分组,这都不会 晕!!!!!!! ) ;

  10. Json格式数据某一列。

    {title : '支付费率',elCls : 'center', dataIndex :'zfrate',width:100, renderer :function(value,obj){ if(o ...