我想了解,是统一将一个数据库中的表全部设置为InnoDB引擎好。还是根据需求,将适合InnoDB的表设置为InnoDB引擎,将适合MyISAM的表设置为MyISAM引擎。哪种方式较好。如果一个表中共用两个引擎,对数据库以后的扩展有或性能有影响吗?
比如,仅对后台发布的新闻,前台以读为主的表,我设置为MyISAM引擎。对于商城或会员的一些关联表,要涉及到事务或高并发读写的,设置为InnoDB引擎。这样合理吗?另外,能否给出InnoDB的相关资料。我的mysql在windows2003平台上。
1、如何将MyISAM转为InnoDB
2、关于InnoDB的设置。
3、使用innodb引擎的一些注意事项。
4、额外的一些话题
我记得在一篇文章说过,为了提高写的性能,将AUTOCOMMIT设置为0。我想问一下,如果将AUTOCOMMIT设置为0,会不会造成其它的不良影响?原文摘录如下:大家可以看到在MySQL 5.0里面,MyISAM和InnoDB存储引擎性能的差别并不是太大,针对InnoDB来说,主要影响性能的是innodb_flush_log_at_trx_commit这个选项,如果设置为1的话,那么每次插入数据的时候都会自动提交,导致性能急剧下降,应该是跟刷新日志有关系,设置为0效率能够看到明显提升,当然,同样你可以SQL中提交“SET AUTOCOMMIT = 0”来设置达到好的性能。另外,还听说通过设置innodb_buffer_pool_size能够提升InnoDB的性能,但是我测试发现没有特别明显的提升。5、我以前一直不敢接触innodb的原因是它不好备份、占用硬盘空间大、涉及配置多,又是什么共享空间,独立空间了,搞的头疼、还因为目前处理的数据比较敏感,不能出错,所以一直没机会尝试。(不敢尝试,怕出问题解决不了)总之对innodb有一点畏惧心理。不过它的事务处理倒非常吸引我。准备要尝试这块。希望能得到朋友的建议及回答。非常感谢。
比如,仅对后台发布的新闻,前台以读为主的表,我设置为MyISAM引擎。对于商城或会员的一些关联表,要涉及到事务或高并发读写的,设置为InnoDB引擎。这样合理吗?另外,能否给出InnoDB的相关资料。我的mysql在windows2003平台上。
1、如何将MyISAM转为InnoDB
2、关于InnoDB的设置。
3、使用innodb引擎的一些注意事项。
4、额外的一些话题
我记得在一篇文章说过,为了提高写的性能,将AUTOCOMMIT设置为0。我想问一下,如果将AUTOCOMMIT设置为0,会不会造成其它的不良影响?原文摘录如下:大家可以看到在MySQL 5.0里面,MyISAM和InnoDB存储引擎性能的差别并不是太大,针对InnoDB来说,主要影响性能的是innodb_flush_log_at_trx_commit这个选项,如果设置为1的话,那么每次插入数据的时候都会自动提交,导致性能急剧下降,应该是跟刷新日志有关系,设置为0效率能够看到明显提升,当然,同样你可以SQL中提交“SET AUTOCOMMIT = 0”来设置达到好的性能。另外,还听说通过设置innodb_buffer_pool_size能够提升InnoDB的性能,但是我测试发现没有特别明显的提升。5、我以前一直不敢接触innodb的原因是它不好备份、占用硬盘空间大、涉及配置多,又是什么共享空间,独立空间了,搞的头疼、还因为目前处理的数据比较敏感,不能出错,所以一直没机会尝试。(不敢尝试,怕出问题解决不了)总之对innodb有一点畏惧心理。不过它的事务处理倒非常吸引我。准备要尝试这块。希望能得到朋友的建议及回答。非常感谢。
解决方案 »
- 关于mysql创建触发器的错误
- 2011年开工第一天,祝大家新年身体健康,万事如意
- 怎样确保获取完整的相邻的重复记录--相邻的两行,某列具有相同的值,否则被认为隔断了
- 关于mysql存储过程复制的问题
- 老土问题:mysql jdbc取出来的数据中文显示乱码
- 数据可字段问题
- access数据库怎么转化为mysql数据库!!!!!!!!!!!!!!!!!!!!!!!
- MYSQL的入门问题,LOAD DATA LOCAL INFILE "pet.txt" INTO TABLE pet;的问题?
- 模糊查询出错
- 为啥文本文件无法存入text类型字段,而用blob则可以
- 求 where 问题
- 无缘无故多了两个数据库,请问是哪里来的
从物理结构
索引
事务
外键
缓存
恢复
备份等方面他们都有一定的差别
一般不用混合引擎,毕竟差别大了,有些执行标准不一样。
1、如何将MyISAM转为InnoDB使用ALTER TABLE ... ENGINE=INNODB,或用相同的定义创建一个空InnoDB表,并且用INSERT INTO ... SELECT * FROM ...插入行。
建议第二种
2关于InnoDB的设置。
根据个人实际需求
3、使用innodb引擎的一些注意事项。
一言难尽,只有遇到时才知道4、额外的一些话题
我记得在一篇文章说过,为了提高写的性能,将AUTOCOMMIT设置为0。我想问一下,如果将AUTOCOMMIT设置为0,会不会造成其它的不良影响?是有影响,一般在开发过程中是要将他设置为0的,但是平时没必要,你想如果你的一个测试修改还得手动提交是不是太麻烦了。但是在应用程序中程序员会知道提交事务。但是如果设置为0,在应用程序中如果控制的不好,造成死锁的机会会增多。
对将来的扩充谈不上什么影响不影响的,毕竟数据库设计完后本身就是个稳定的结构。 当需要改变的时候,从新进行评估。这是一般的选择原则。
只不过是取消自动提交而已。 既然需要使用事务,那自然应该设置AUTOCOMMIT为无效。
INNODB没什么不好备份的。定期用 mysqldump 备份,并打开二进制日志即可。