mysql的InnoDB的优化举例

硬件环境:双核单CPU,2G内存

innodb_buffer_pool_size=1024M-----------------InnoDB使用一个缓冲池来保存索引和原始数据,你可以设置这个变量到服务器物理内存大小的80%

innodb_additional_mem_pool_size=16M--------------用来存放Innodb的内部目录
,通常比较大数据设置16M够用了,如果表比较多,可以适当的增大。innodb_log_files_in_group=3-----------------在日志组中的文件总数

innodb_log_file_size=150M----------------在日志组中每个日志文件的大小.,你应该设置日志文件总合大小到你缓冲池大小的25%~100%

innodb_log_buffer_size=8M------------用来缓冲日志数据的缓冲区的大小

innodb_lock_wait_timeout=50------------------在被回滚前,一个InnoDB的事务应该等待一个锁被批准多久

innodb_data_home_dir = /usr/local/mysql/var/------------------- InnoDB主目录,所有与InnoDB数据表有关的目录或文件路径都相对于这个路径。在默认的情况下,这个主目录就是MySQL的数据目录。

innodb_data_file_path = ibdata1:10M:autoextend---------------用来容纳InnoDB为数据表的表空间

innodb_log_group_home_dir = /usr/local/mysql/var/-------------------用来存放InnoDB日志文件的目录路径(如 ib_logfile0、ib_logfile1等)。在默认的情况下,InnoDB驱动程序将使用MySQL数据目录作为自己保存日志文件的位置。

innodb_flush_log_at_trx_commit=1--------------- 如果设置为1 ,InnoDB会在每次提交后刷新(fsync)事务日志到磁盘上,这提供了完整的ACID行为.如果你愿意对事务安全折衷, 并且你正在运行一个小的食物, 你可以设置此值到0或者2来减少由事务日志引起的磁盘I/O,0代表日志只大约每秒写入日志文件并且日志文件刷新到磁盘. 2代表日志写入日志文件在每次提交后,但是日志文件只有大约每秒才会刷新到磁盘上.

停掉数据库然后删除数据库目录/usr/local/mysql/var目录下的ib_logfile0和ib_loggile1 或者执行flush logs指令后 才能设置innodb_log_file_size否则数据库无法启动

来源:http://qubaoquan.blog.51cto.com/1246748/292864

阅读全文
类别: mysql栏目  查看评论

你可能感兴趣的:(mysql的InnoDB的优化举例)