14 12
发新话题
打印

mysql 血的教训

mysql 血的教训

强烈建议大家在使用MYSQL的时候,适可而止,如果有关键业务需要使用事务型数据引擎的,建议使用其它的数据库系统,MYSQL自带的第三方的innoDB引擎实在是太脆弱,一个ALTER TABLE操作就有可能引起数据库崩溃,一个导入动作出错也可能导致MYSQL无法启动,
数据库数据越多此效应越明显,血的教训,第三次崩溃
建议大家就使用MYSQL自己的MYISAM引擎就可以了,innoDB大家还是不要试了!!

TOP

但是MYISAM往往不能满足我们的要求呀..

TOP

InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。下面是已知的两者之间的差别,仅供参考。

1.InnoDB不支持FULLTEXT类型的索引。
2.InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作是一样的。
3.对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。
4.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。
5.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用。

另外,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如update table set num=1 where name like “%aaa%”

任何一种表都不是万能的,只用恰当的针对业务类型来选择合适的表类型,才能最大的发挥MySQL的性能优势。
交流QQ群2:16142493
智能手机软件下载
PHP新手不可错过一帖
PHP新手如何获得积分
论坛需要你,我们大家需要你!

TOP

印象中MYSQL没有你说的那么烂吧?
我一般都是用MyISAM
而且目前MYSQL被SUN收购后
正在着手重新开发引擎
期待~~~
交流QQ群2:16142493
智能手机软件下载
PHP新手不可错过一帖
PHP新手如何获得积分
论坛需要你,我们大家需要你!

TOP

顶顶 顶死所长。。 还是所长好,能给我们这样的菜鸟解释 那两个 的区别,不然都不知道楼主说啥呢。。。在顶一下。。
世界极静  只有灵魂独舞--------世界上没有任何事可以替代坚持。

我们都需要论坛 论坛也同时需要我们的支持

TOP

顶了,不知道.我一直是用MYSQL的。别的不会。

TOP

ALTER TABLE 有可能造成崩溃 理解
但平时的导入出错,费解
学会怎么调试程序,学会怎么设计模式,学会怎么配置环境,学会怎么带项目,学会怎么分析客户需求

TOP

还是不太了解!!!
有待努力

TOP

现在公司的数据库有的表有 2G ,这是时候如果你想进行一下修改,如:添加删除索引、导入一些.sql文件的数据,那我真是完全不敢操作了,崩溃了好几次了
MyISAM的话因为是每个表都相对独立,所以问题不太大,至少一个表不会引起整个DBMS的不能启动
建议大家上项目如果不是逼不得已就不要用innodb,如果必须要用,则应该考虑以后的数据量,如果要上百千万的,最好别用mysql

TOP

纯用户数据达到2G..... 平时测的只是在1G左右的,看来以后要加在测试数据量了
谢谢LZ提醒
学会怎么调试程序,学会怎么设计模式,学会怎么配置环境,学会怎么带项目,学会怎么分析客户需求

TOP

 14 12
发新话题