1

我有一些非常大的数据库(一些高达 150M 行)我正在使用&在最初插入数据之后没有太多INSERT's事情发生;只是很多SELECT's& 的用法JOINS

我一直在使用 InfoBright(社区版本),虽然我相信它是一个很好的引擎,但我个人在让它按应有的方式运行(快速)方面遇到了一些问题。

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

我现在才退房tokudb;还有什么要检查的吗?

4

4 回答 4

3

你也应该看看InfiniDBhttp://infinidb.org/(最快的之一)

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

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

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

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

于 2011-05-21T19:58:39.433 回答
2

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

于 2011-05-21T18:51:58.140 回答
2

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

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

http://sphinxsearch.com/docs/2.0.1/sphinxse-overview.html(注意,自 1.0 之前的版本以来我并没有使用太多)

于 2011-05-21T18:55:45.127 回答
0

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

由于知识网格是在内存中的,因此您只需添加额外的过滤器就可以减少大量查询时间。此外,请考虑使用嵌套选择而不是连接。通过这样做,您可以使用已经创建的知识节点(而不是动态生成一个包到包节点)。

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

干杯,

杰夫

于 2011-07-21T15:51:41.343 回答