cszer

MySQL的InnoDB的优化举例(转)

分类: 技术, MySQL       评论: 0   阅读:2,541 views

硬件环境:双核单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

除非注明,文章皆由( csz )原创,转载请标明本文地址
本文地址: http://www.cszhi.com/20120416/mysql-innodb-optimize.html

04-16
2012

发表评论