Home  >  Article  >  Database  >  Mysql Innodb引擎优化(参数篇)_MySQL

Mysql Innodb引擎优化(参数篇)_MySQL

WBOY
WBOYOriginal
2016-06-01 14:01:26872browse

  InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句 提供一个Oracle风格一致的非锁定读。这些特色增加了多用户部署和性能。没有在InnoDB中扩大锁定的需要,因为在InnoDB中行级锁定适合非常 小的空间。InnoDB也支持FOREIGN KEY强制。在SQL查询中,你可以自由地将InnoDB类型的表与其它MySQL的表的类型混合起来,甚至在同一个查询中也可以混合。

  Innodb 的创始人:Heikki Tuuri

  Heikki Tuuri在Innodb的Bug社区里也是很活跃的,如果遇到Bug也可以直接提到社区,得到作者的解答。

  为什么要学习Innodb的调优:

  目前来说:InnoDB是为Mysql处理巨大数据量时的最大性能设计。它的CPU效率可能是任何其它基于磁盘的关系数据库引擎所不能匹敌的。在数据量大的网站或是应用中Innodb是倍受青睐的。

  另一方面,在数据库的复制操作中Innodb也是能保证master和slave数据一致有一定的作用。

  参数调优内容:

  1. 内存利用方面

  2. 日志控制方面

  3.文件IO分配,空间占用方面

  4. 其它相关参数

  1.内存利用方面:

  首先介绍一个Innodb最重要的参数:

  innodb_buffer_pool_size

  这个参数和MyISAM的key_buffer_size有相似之处,但也是有差别的。这个参数主要缓存innodb表的索引,数据,插入数据时的缓冲。为Innodb加速优化首要参数。

  该参数分配内存的原则:这个参数默认分配只有8M,可以说是非常小的一个值。如果是一个专用DB服务器,那么他可以占到内存的70%-80%。这个参 数不能动态更改,所以分配需多考虑。分配过大,会使Swap占用过多,致使Mysql的查询特慢。如果你的数据比较小,那么可分配是你的数据大小+10% 左右做为这个参数的值。例如:数据大小为50M,那么给这个值分配innodb_buffer_pool_size=64M

  设置方法:

  innodb_buffer_pool_size=4G

  这个参数分配值的使用情况可以根据show innodb status/G;中的

  ----------------------

  BUFFER POOL AND MEMORY

  ----------------------

  Total memory allocated 4668764894;

  去确认使用情况。

  第二个:

  innodb_additional_mem_pool:

  作用:用来存放Innodb的内部目录

  这个值不用分配太大,系统可以自动调。不用设置太高。通常比较大数据设置16M够用了,如果表比较多,可以适当的增大。如果这个值自动增加,会在error log有中显示的。

  分配原则:

  用show innodb status/G;去查看运行中的DB是什么状态(参考BUFFER POOL AND MEMORY段中),然后可以调整到适当的值。

  ----------------------

  BUFFER POOL AND MEMORY

  ----------------------

  Total memory allocated 4668764894; in additional pool allocated 16777216

  参考:in additional pool allocated 16777216

  根据你的参数情况,可以适当的调整。

  设置方法:

  innodb_additional_mem_pool=16M

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn