首页 / HTML / innodb的innodb_buffer_pool_size和MyISAM的key_buffer_size(转自:http://www.java123.net/898181.html)
innodb的innodb_buffer_pool_size和MyISAM的key_buffer_size(转自:http://www.java123.net/898181.html)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了innodb的innodb_buffer_pool_size和MyISAM的key_buffer_size(转自:http://www.java123.net/898181.html),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3358字,纯文字阅读大概需要5分钟。
内容图文
-40%。合理的值取决于索引大小、数据量以及负载 -- 记住,MyISAM表会使用操作系统的缓存来缓存数据,因此需要留出部分内存给它们,很多情况下数据比索引大多了。尽管如此,需要总是检查是否所有的 key_buffer 都被利用了 -- .MYI 文件只有 1GB,而 key_buffer 却设置为 4GB 的情况是非常少的。这么做太浪费了。如果你很少使用MyISAM表,那么也保留低于 16-32MB 的 key_buffer_size 以适应给予磁盘的临时表索引所需。 key_buffer_size = 2000M 或者 key_buffer_size = 1Gkey_buffer_size设置和说明:http://blog.csdn.net/rainysia/article/details/8767946
二. innodb_buffer_pool_size 对Innodb表来说非常重要。
Innodb相比MyISAM表对缓冲更为敏感。MyISAM可以在默认的 key_buffer_size 设置下运行的可以,然而Innodb在默认的 innodb_buffer_pool_size 设置下却跟蜗牛似的。由于Innodb把数据和索引都缓存起来,无需留给操作系统太多的内存,因此如果只需要用Innodb的话则可以设置它高达 70-80% 的可用内存。一些应用于 key_buffer 的规则有 -- 如果你的数据量不大,并且不会暴增,那么无需把 innodb_buffer_pool_size 设置的太大了。 innodb_buffer_pool_size = 8000M 或者 innodb_buffer_pool_size = 15G
三.其他
其他牛人的解释 #InnoDB存储数据字典、内部数据结构的缓冲池,16MB 已经足够大了。 innodb_additional_mem_pool_size = 16M #InnoDB用于缓存数据、索引、锁、插入缓冲、数据字典等 #如果是专用的DB服务器,且以InnoDB引擎为主的场景,通常可设置物理内存的50% #如果是非专用DB服务器,可以先尝试设置成内存的1/4,如果有问题再调整 #默认值是8M,非常坑X,这也是导致很多人觉得InnoDB不如MyISAM好用的缘故 innodb_buffer_pool_size = 4G #InnoDB共享表空间初始化大小,默认是 10MB,也非常坑X,改成 1GB,并且自动扩展 innodb_data_file_path = ibdata1:1G:autoextend #如果不了解本选项,建议设置为1,能较好保护数据可靠性,对性能有一定影响,但可控 innodb_flush_log_at_trx_commit = 1 #抱 怨Innodb比MyISAM慢 100倍?那么你大概是忘了调整这个值。默认值1的意思是每一次事务提交或事务外的指令都需要把日志写入(flush)硬盘,这是很费时的。特别是使用电 池供电缓存(Battery backed up cache)时。设成2对于很多运用,特别是从MyISAM表转过来的是可以的,它的意思是不写入硬盘而是写入系统缓存。日志仍然会每秒flush到硬 盘,所以你一般不会丢失超过1-2秒的更新。设成0会更快一点,但安全方面比较差,即使MySQL挂了也可能会丢失事务的数据。而值2只会在整个操作系统 挂了时才可能丢数据 #InnoDB的log buffer,通常设置为 64MB 就足够了 innodb_log_buffer_size = 64M #InnoDB redo log大小,通常设置256MB 就足够了 innodb_log_file_size = 256M #InnoDB redo log文件组,通常设置为 2 就足够了 innodb_log_files_in_group = 2 #启用InnoDB的独立表空间模式,便于管理 innodb_file_per_table = 1 #启用InnoDB的status file,便于管理员查看以及监控等 innodb_status_file = 1 #设置事务隔离级别为 READ-COMMITED,提高事务效率,通常都满足事务一致性要求 transaction_isolation = READ-COMMITTED [mysqld] #禁止开启自动事务 init_connect=‘SET autocommit=0‘ innodb_buffer_pool_size = 4G key_buffer_size = 1G user = mysql socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp skip-external-locking #bind-address = 127.0.0.1 # # * Fine Tuning # key_buffer = 16M max_allowed_packet = 16M thread_stack = 192K thread_cache_size = 8 # This replaces the startup script and checks MyISAM tables if needed
innodb的innodb_buffer_pool_size和MyISAM的key_buffer_size(转自:http://www.java123.net/898181.html)
标签:
本文系统来源:http://www.cnblogs.com/vijayfly/p/5632378.html
内容总结
以上是互联网集市为您收集整理的innodb的innodb_buffer_pool_size和MyISAM的key_buffer_size(转自:http://www.java123.net/898181.html)全部内容,希望文章能够帮你解决innodb的innodb_buffer_pool_size和MyISAM的key_buffer_size(转自:http://www.java123.net/898181.html)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。