最快的 MySQL 存储引擎,无需并发即可存储数据
我正在使用 mysql 库来存储对大量数据(数亿条记录)进行的各种测试的结果。
我是该基地的唯一用户,因此不会有任何并发问题。我还想使用简单的数学函数,例如“avg”、“std”等
您认为执行此类任务的最佳引擎是什么?
我现在正在使用InnoDB,在我看来它有点沉重。
问候
纪尧姆
I'm using a mysql base to store results from various test over a large amount of data (hundred of millions recordings).
I'm the only user of the base so there won't be any problem of concurrency. I also want to use simple mathematical functions such as 'avg', 'std' etc
What is the best engine in your opinion for such a task?
I'm using InnoDB right now and it seems to me a bit heavy.
Regards
Guillaume
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用 InnoDB 表会带来事务支持、回滚等开销。如果您不需要事务支持,那么您应该使用 MyISam 表,因为它没有任何事务支持,并且查找速度更快等他们在 InnoDB 上做了很多工作来加快速度,但总是有一些开销需要应对。我建议在切换之前进一步阅读该主题。
如果表与您建议的内存表一样大,可能会导致性能和存储问题。对于这些类型的表,我建议使用 MyISam 结构或将 innodb_flush_log_at_trx_commit 设置为 0 的 InnoDB 表(这会切换到在控制返回给调用者之前事务不会提交到磁盘的模式)。
Using an InnoDB table comes with an overhead of transactional support, rollbacks etc. If you don't need this support for transactions then you should really go with an MyISam table as it doesn't have any transactional support and can be faster for lookups etc. They have been doing a lot of work on InnoDB to bring it up to speed but there is always that overhead to contend with. I would suggest some further reading on the topic before switching.
With a table as large as your suggesting a memory table may cause you issues with performance and storage. For these sorts of tables I would recommend an MyISam structure or an InnoDB table with innodb_flush_log_at_trx_commit set to 0 (this switches to a mode where transactions are not commited to disk before control is returned to the caller).
Tokudb 将是一个更好的选择。
您可以查看这些链接以获得更多理由:
Tokudb 插入基准 和
Tokudb 与 InnoDB 比较
请考虑到 Tokudb允许多个聚类索引,这可以极大地改进选择操作。 tokudb还使用分形索引来提供良好的性能。
Tokudb would be a better alternative.
You can have a look at these links for more justification:
Tokudb bench mark for insertion and
Tokudb versus InnoDB Comparison
Please take into consideration that Tokudb allows multiple clustering indices which could improve selection operation very much. Also tokudb uses fractal indexing which provide good performance.
您认为 innodb 聚集索引会以任何方式提高您的查询性能吗?
http://dev.mysql.com/doc/ refman/5.0/en/innodb-index-types.html
更多信息:
针对提供大量数据的查询的最佳 MySQL 设置?
重写 mysql select 以减少时间并将 tmp 写入磁盘
如果你不这么认为,那么我想就用 myisam 吧。
do you think innodb clustered indexes would enhance your query performance in any way ?
http://dev.mysql.com/doc/refman/5.0/en/innodb-index-types.html
Further information:
Optimal MySQL settings for queries that deliver large amounts of data?
Rewriting mysql select to reduce time and writing tmp to disk
if you think not then go with myisam i guess.