快速选择/加入MySQL存储引擎?

时间:2011-05-21 18:42:05

标签: mysql storage-engines

我有一些非常大的数据库(有些高达150M行)我正在使用&在最初插入数据后,INSERT's进行的不多;只是很多SELECT's&使用JOINS

我一直在搞乱InfoBright(社区版)&虽然我认为它是一个很好的引擎,但我个人一直遇到一些问题,让它像它应该的那样运行(快速)。

所以我想知道是否有其他人可以为MySQL推荐任何其他快速免费存储引擎?

我刚刚结账tokudb;还有其他什么可以退房吗?

4 个答案:

答案 0 :(得分:3)

您也应该查看 InfiniDB http://infinidb.org/(最快的一个)

在对任何引擎进行基准测试之前,您需要做很多考虑。多核处理器,内存,配置等硬件。设计与您的架构等相关的内容以及所有这些都会影响引擎性能。

请查看此博客,了解他们如何对引擎进行基准测试(它命名其他引擎类型) - http://www.mysqlperformanceblog.com/2010/01/07/star-schema-bechmark-infobright-infinidb-and-luciddb/

请注意,此比较适用于星型架构设计。如果柱状数据库引擎不符合您的要求,您可以查看 XtraDB ,这是InnoDB的扩展版本(不是最快的,但符合ACID标准)。

ps - 始终跟踪每个引擎的属性(对您很重要) - 例如参照完整性检查,ACID合规性等。有时这些限制可能是更大的交易破坏者,而查询性能提高10%

答案 1 :(得分:2)

除了考虑您使用的DBMS之外,您还应该专注于优化表,索引和查询。 每当你有多个连接时,首先加入最具选择性的关系,然后加入选择性较低的关系。 分析您的查询执行计划。 在QEP中经常命中的列上创建索引。

答案 2 :(得分:2)

你看过狮身人面像吗?虽然它是一个搜索引擎,但它也支持无查询搜索,这类似于带索引的标准SELECT查询。在处理大型数据集时,我发现它是一个巨大的帮助。它速度非常快,并且在数百万(或数亿)帖子竞技场中的高流量论坛中大量使用。

还有一个名为SphinxSE的MySQL插件,它允许它充当MySQL存储引擎,使集成非常容易设置。您通过为索引器程序提供查询来构建索引,然后一旦设置完毕,就可以像查询它一样查询它。

http://sphinxsearch.com/docs/2.0.1/sphinxse-overview.html(注意,自1.0之前我没有使用过很多)

答案 3 :(得分:0)

布雷特 - 使用Infobright时,您可以通过以下方式获得最佳性能提升: 1)尽可能利用知识网格 2)减少连接 3)创建'查找'

由于知识网格在内存中,因此只需添加其他过滤器即可消除大量查询时间。另外,请考虑使用嵌套选择而不是连接。通过这样做,您可以使用已经创建的知识节点(而不是动态生成pack-to-pack节点)。

如果你有一些你认为应该更快的查询,请发布它们,我可以帮助修改查询以使其运行得更快。

干杯,

杰夫