我正在使用 mysql 库来存储来自大量数据(数亿条记录)的各种测试的结果。
我是基地的唯一用户,所以不会有任何并发问题。我还想使用简单的数学函数,例如“avg”、“std”等
您认为完成此类任务的最佳引擎是什么?
我现在正在使用 InnoDB,在我看来它有点沉重。
问候
纪尧姆
我正在使用 mysql 库来存储来自大量数据(数亿条记录)的各种测试的结果。
我是基地的唯一用户,所以不会有任何并发问题。我还想使用简单的数学函数,例如“avg”、“std”等
您认为完成此类任务的最佳引擎是什么?
我现在正在使用 InnoDB,在我看来它有点沉重。
问候
纪尧姆
使用 InnoDB 表会带来事务支持、回滚等开销。如果您不需要对事务的这种支持,那么您真的应该使用 MyISam 表,因为它没有任何事务支持并且可以更快地查找等. 他们已经在 InnoDB 上做了大量工作以使其跟上速度,但总是需要应对这些开销。我建议在切换之前对该主题进行一些进一步的阅读。
使用与您建议的内存表一样大的表可能会导致性能和存储问题。对于这些类型的表,我建议使用 MyISam 结构或 InnoDB 表,其中 innodb_flush_log_at_trx_commit 设置为 0(这会切换到在将控制权返回给调用者之前事务不提交到磁盘的模式)。
Tokudb 将是一个更好的选择。
您可以查看这些链接以获得更多理由: Tokudb 插入基准和 Tokudb 与 InnoDB 比较
请考虑到 Tokudb 允许多个聚类索引,这可以极大地改善选择操作。tokudb 也使用分形索引,提供良好的性能。
您认为 innodb 聚集索引会以任何方式提高您的查询性能吗?
http://dev.mysql.com/doc/refman/5.0/en/innodb-index-types.html
更多的信息:
如果你不这么认为,那么我想就和 myisam 一起去吧。