4

我正在使用 mysql 库来存储来自大量数据(数亿条记录)的各种测试的结果。

我是基地的唯一用户,所以不会有任何并发​​问题。我还想使用简单的数学函数,例如“avg”、“std”等

您认为完成此类任务的最佳引擎是什么?
我现在正在使用 InnoDB,在我看来它有点沉重。

问候

纪尧姆

4

3 回答 3

6

使用 InnoDB 表会带来事务支持、回滚等开销。如果您不需要对事务的这种支持,那么您真的应该使用 MyISam 表,因为它没有任何事务支持并且可以更快地查找等. 他们已经在 InnoDB 上做了大量工作以使其跟上速度,但总是需要应对这些开销。我建议在切换之前对该主题进行一些进一步的阅读。

使用与您建议的内存表一样大的表可能会导致性能和存储问题。对于这些类型的表,我建议使用 MyISam 结构或 InnoDB 表,其中 innodb_flush_log_at_trx_commit 设置为 0(这会切换到在将控制权返回给调用者之前事务不提交到磁盘的模式)。

于 2010-11-22T11:22:25.083 回答
1

Tokudb 将是一个更好的选择。

您可以查看这些链接以获得更多理由: Tokudb 插入基准Tokudb 与 InnoDB 比较

请考虑到 Tokudb 允许多个聚类索引,这可以极大地改善选择操作。tokudb 也使用分形索引,提供良好的性能。

于 2013-11-14T07:22:41.100 回答
0

您认为 innodb 聚集索引会以任何方式提高您的查询性能吗?

http://dev.mysql.com/doc/refman/5.0/en/innodb-index-types.html

更多的信息:

提供大量数据的查询的最佳 MySQL 设置?

重写mysql select以减少时间并将tmp写入磁盘

如果你不这么认为,那么我想就和 myisam 一起去吧。

于 2010-11-22T12:12:57.173 回答