Mysql优化

 Mysam引擎的优化

Mysan引擎的索引  指定索引缓冲区的大小,它决定索引处理的速度,尤其是索引读的速度。

Qusetion
Qc  查询缓存  调整Query Cache  加速读取的速度   
SELECT and Sort
Sort 用来做排序的内存大小。因为Mysql是线程的工作方式,这个数值大的话,可以增加排序的速度   
Table locks
Waited  这个数值越小越好  应该是等待等候的意思小的话占用的系统资源就少。   

Tables
Tables 加快访问表文件的速度,让读取更容易。就是把表的文件描述符放到内存中不用每次都从磁盘中读取。

Connections
Max used  最大连接数 总体来说,该参数在服务器资源够用的情况下应该尽量设置大,以满足多个客户端同时连接的需求。否则将会出现类似“Too many connections”的错误。  
Created Temp	创建临时表 CPU 占用有轻微下降,这表明调整 tmp_table_size 参数对 MYSQL 性能提升有改善作用。
Threads	线程缓存,减少从需要到产生的时间 就是从访问到获取的时间。

InnoDB引擎  毕设!!!!!!!!      
Usage    越大越好    建议大小设置为整个内存的80%   按页Pages	单位:16K每页

 InnoDB与网络 
back_log 请求队列中能够排队的大小,如果增大并发数,则这个数必须要调大定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数,默认值为1024,具体信息为
 
show variables like '%max_allowed_packet%'; 注意:该值设置过小将导致单个记录超过限制后写入数据库失败,且后续记录写入也将失败。
 
show variables like '%timeout%';使用mysql的过程出现数据库连接自动断开的问题,因为连线时超时时 间过短。     
interactive_timeout  处于回会话空闲的timeout

connect_timeout与wait_timeout
同一时间,这两个参数只有一个起作用。到底是哪个参数起作用,和用户连接时指定的连接参数相关,缺省情况下是使用wait_timeout。我建议是将这两个参数都修改,以免引起不必要的麻烦。   
net_read_timeout
net_write_timeout  处于数据交互阶段超时时间 


Innodb与IO相关的


show variables like '%innodb_flush_log%';
innodb_flush_log_trx_commit
0 最不安全,但是效率是最高,每隔一秒钟会把数据写入到硬盘上,如果断电或者数据库服务坏了,数据就丢失了
1 最安全,数据会时时的写到硬盘上
2 先写到操作系统的内存中,每隔1秒,再写入到磁盘中,mysql进程死了,数据不丢,但是断电了,数据就丢失了

生产环境下建议设置为第三条


如果系统内存过少,可以节省内存把数据直接写到磁盘中。
绕过操作系统的缓存,直接将数据写入到磁盘中,好处是节省了内存

InnoDB与cpu  
主频高:可以加快cpu的运算速度,也就是可以提高你电脑的运行速度。主频的高低也是cpu好坏的一个最重要的指标。 

核心:核心数越多越好。但也不尽然,一般说来,新的核心类型往往比老的核心类型具有更好的性能(例如同频的Northwood核心Pentium 4 1.8A GHz就要比Willamette核心的Pentium 4 1.8GHz性能要高),但这也不是绝对的,这种情况一般发生在新核心类型刚推出时,由于技术不完善或新的架构和制造工艺不成熟等原因,可能会导致新的核心类型的性能反而还不如老的核心类型的性能。 
taskset 绑定:可以把进程运行到指定的CPU上,这样一来,把不重要的进程安排到某个CPU,可以大大改善系统整体性能。需要先把CPU分出一部分。然后再绑定需要的程序。





你可能感兴趣的:(mysql,优化)