繁体   English   中英

MySQL:InnoDB或MyISAM Engine :::哪个对很多选择更好?

[英]MySQL: InnoDB or MyISAM Engine ::: which is better for lot of selects?

我有一个巨大的文件(〜26 MB),大约有200列和30000条记录。 我想将其导入数据库(InnoDB Engine)。 我永远不会更新或删除记录。 尽管我将在where子句中从表中查询很多记录,但记录的复杂度很高。 我应该选择哪种表引擎来加快查询响应速度? 真的会有很大的不同吗? PS:我所有其他表都使用InnoDB。

另外,如何避免手动创建包含200列的表并为每个列指定数据类型。 大多数列都是浮点型的,很少是varchar和date。

通常,“更快,ISAM或innodb”的答案是ISAM

但是为了获得具有很少更新的表的最佳性能,您可能需要查看Infobright的列式数据库 (已集成到mysql中)。

但是,只有3万行时,您看不到innodb,isam和infobright之间的显着差异。

OTOH,您真的应该认真考虑一下是否真的需要在单个表中包含200列。 我怀疑情况并非如此-模式在确定性能方面比存储引擎重要得多。

当处理大量数据时,innodb的价格要比myisam好。

http://www.mysqlperformanceblog.com/2007/01/08/innodb-vs-myisam-vs-falcon-benchmarks-part-1/

http://www.cftopper.com/index.cfm?blogpostid=84

MySQL支持工程师和Wikipedia工程师James Day建议人们一直使用InnoDB,除非出于某种原因,如果您明显需要MyISAM:

“在证明它不合适之前,我会选择InnoDB。第一个原因是可靠性。使用MyISAM会导致崩溃,并且与表大小,表修复过程有关,这是不可靠且缓慢的。与InnoDB相同,而您获得固定的时间,快速且可靠的日志应用/回滚过程。随着数据集的增大,这一点变得越来越重要,就像您要执行诸如睡眠之类的事情,而不是在深夜醒来,修复崩溃的表。

为了提高可靠性和性能,我们在Wikipedia上几乎将InnoDB用于所有内容-我们承受不起MyISAM使用所隐含的停机时间,当崩溃时无法检查表中的400GB数据。”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM