我想请问各位,不知大家目前所做的项目里面MYSQL的存储引擎一般是用什么引擎呢?
主要是MyISAM呢,还是InnoDB呢?
最好是有经验人士的答案。经过了真正实践的考验的。
目前我是用ENGINE = MyISAM ROW_FORMAT = DYNAMIC。
我目前了解的就是如果用MyISAM的话,在data文件夹里面就会有*.frm、*.MYD、*.MYI,这三个文件,只要对这三个文件备份的话,如果系统崩溃了,也一样可以找回表的结构与数据。
如果用InnoDB,如果系统崩溃了就想找回数据,必须要ibdata1文件,因为InnoDB的数据全部都这里面了。
这是我在一次经验中发现的。
所以现在我一般用MyISAM引擎。
针对MyISAM与InnoDB这两个表的特征,我也搜索过很多文章对比过,但是感觉自己所接触的项目根本就没有发现到两者太大的差异。感觉好像一样。可能是因为本人所接触的项目比较小。
我希望各位有经验的人一起来讨论这个问题,各抒己见。
希望是经验之谈。
主要是MyISAM呢,还是InnoDB呢?
最好是有经验人士的答案。经过了真正实践的考验的。
目前我是用ENGINE = MyISAM ROW_FORMAT = DYNAMIC。
我目前了解的就是如果用MyISAM的话,在data文件夹里面就会有*.frm、*.MYD、*.MYI,这三个文件,只要对这三个文件备份的话,如果系统崩溃了,也一样可以找回表的结构与数据。
如果用InnoDB,如果系统崩溃了就想找回数据,必须要ibdata1文件,因为InnoDB的数据全部都这里面了。
这是我在一次经验中发现的。
所以现在我一般用MyISAM引擎。
针对MyISAM与InnoDB这两个表的特征,我也搜索过很多文章对比过,但是感觉自己所接触的项目根本就没有发现到两者太大的差异。感觉好像一样。可能是因为本人所接触的项目比较小。
我希望各位有经验的人一起来讨论这个问题,各抒己见。
希望是经验之谈。
我的数据库比较小,连接人数不多,所以MyISAM和InnoDB感觉上没什么太大的区别。
不过我问过有经验的人,他说简单来说连接数很多,又同时操纵一个表的时候,MyISAM就是要一个个执行,而InnoDB可以多个执行,不冲突
MyISAM 是非事务的存储引擎。
innodb是支持事务的存储引擎。两者在文件结构,查询效率,参照完整性支持,等方面都有差异。 MYSQL文档中用了近万字来描述这两个存储引擎。
http://dev.mysql.com/doc/refman/5.1/zh/storage-engines.html
15. 存储引擎和表类型
15.1. MyISAM存储引擎
15.1.1. MyISAM启动选项
15.1.2. 键所需的空间
15.1.3. MyISAM表的存储格式
15.1.4. MyISAM表方面的问题
15.2. InnoDB存储引擎
15.2.1. InnoDB概述
15.2.2. InnoDB联系信息
15.2.3. InnoDB配置
15.2.4. InnoDB启动选项
15.2.5. 创建InnoDB表空间
15.2.6. 创建InnoDB表
15.2.7. 添加和删除InnoDB数据和日志文件
15.2.8. InnoDB数据库的备份和恢复
15.2.9. 将InnoDB数据库移到另一台机器上
15.2.10. InnoDB事务模型和锁定
15.2.11. InnoDB性能调节提示
15.2.12. 多版本的实施
15.2.13. 表和索引结构
15.2.14. 文件空间管理和磁盘I/O
15.2.15. InnoDB错误处理
15.2.16. 对InnoDB表的限制
15.2.17. InnoDB故障诊断与排除
而myisam则适合用于频繁查询的应用
好像MyISAM 不支持外键
innodb--设计合理的话是行锁。
myisam不会出现死锁。
针对楼上的各位,貌似用MyISAM的人偏多,没几个是真正用innodb的哦!
有没有真正有过这个经验的呢?
是否真的验证了这一句话呢?
我个人感觉innodb很难恢复数据,比较麻烦,比MyISAM麻烦
innodb是支持事务的存储引擎。 如果你经常在这个表上做事务操作,用innodb
如果只是insert和select,用MyISAM 跟其他什么数据大小都没有关系
MyISAM 甚至是查询最快的引擎