今天给大家伙儿唠唠这个MySQL的引擎,说白就是它咋存数据、咋管数据的那一套玩意儿。我这不最近手头上有个项目,得用数据库嘛然后就琢磨着这引擎到底有啥讲究,结果发现这里头还真有不少门道。我就把自己折腾的这点经验拿出来跟大家分享分享。
我得承认,一开始我对这玩意儿也不是很熟。就知道MySQL挺多人用的,然后就直接上手。结果用着用着发现,有时候数据插得快,有时候又慢得跟蜗牛似的,还时不时地给我整点幺蛾子出来。我这暴脾气,那必须得把它搞明白!
于是我就开始各种查资料,看文档。这一查才知道,原来MySQL里头有好几种不同的引擎,比较常见的,有InnoDB,还有MyISAM,还有一些其他的比如Memory、Archive啥的,当然还有NDB Cluster,不过我这小项目是用不上这个。
- InnoDB:这个厉害,支持啥事务、外键,还能搞行级锁定,听着就高级。而且它还能自动修复一些小毛病,比较稳当。
- MyISAM:这个,特点就是快,操作起来嗖嗖的,但是它不支持事务,并发性能也差点意思,不过简单用用也还行。
- Memory:这家伙直接把数据放内存里,那速度,老快,但是一旦服务器重启,数据就全没,所以一般用来存一些临时数据。
- Archive:看名字就知道,这是用来归档数据的,压缩比高,省空间,但是功能比较单一,只支持插入和查询。
解这些之后,我就开始动手试。我先建几个表,分别用不同的引擎,然后插入一些数据,再各种查询、更新、删除,折腾一通。发现,不同的引擎还真有挺大区别的。比如说,用InnoDB的时候,我可以搞事务,这样就算中间出啥问题,也能回滚到之前的状态,数据不会乱。而用MyISAM,虽然速度快点,但是就没这功能,出问题就只能自己想办法。
总结起来就那么几句话:
- 如果你的项目对数据的一致性要求比较高,需要用到事务啥的,那就用InnoDB。
- 如果你的项目主要是读操作比较多,对速度要求高,而且不太在乎数据的一致性,那可以用MyISAM。
- 如果你的项目需要用到临时表,那就用Memory。
- 如果你的项目需要存储大量的归档数据,那就用Archive。
这只是我个人的实践经验,具体用哪个引擎,还得看你的项目实际情况。反正,多试试总没坏处,找到最适合自己的才是最好的!
今天就跟大家伙儿分享到这里,希望对你们有所帮助!
免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。