2014-02-06 44 views
0

我在最近几个月的某处读到,有一个与MySQL或MariaDB集成的项目允许直接索引访问作为性能优化。有没有办法直接访问MariaDB或MySQL表索引?

具体来说,有些种类的接口,它会让你直接说这样的话:

  • “给我在哪里,这个索引列匹配BLAH记录的ID”或
  • “做的ID此值存在于此特定索引中“

...并允许您绕过SQL查询解析,计划等步骤,从而为速度敏感操作获得更高的吞吐量。

我似乎无法找到这只是谷歌搜索。任何熟悉项目的人都会这样做?只是寻找任何开源的链接,做这种事情。 (AM专门处理与MySQL [或它的衍生物之一],但其他开源项目可能是相关的,以及。)

背景资料:

我已经准备好对highscalability.com等地的商店从传统的RDBMS转移到NoSQL风格的解决方案(或者决定在新项目开始时进入NoSQL),以后才后悔它,并发现NoSQL的优势不会超过必须在周围构建某些东西的缺点一个不支持SQL灵活性的存储平台(主要是:用代码手写联接而不是简单地查询那些东西是一个痛处)。我可以发誓我会读一些关于使用“传统”RDBMS的人的一些事情,然后直接暴露那些真正需要高性能的特定情况下的原始索引,作为一种潜在的解决方案。但是当我四处搜寻时,我并没有看到太多内容。因此这个问题。

+1

你为什么认为'SELECT ID FROM table WHERE col ='value''不会让你满意? – zerkms

回答

2

您可能正在考虑HandlerSocket in MariaDBHandlerSocket in Percona ServerInnoDB Memcached API in MySQL 5.6。但实际上,你不应该轻易使用这些解决方案之一。对于选择的应用程序和用途来说,它们非常有用,它们之间的区别是显而易见且有益的,对于整个世界的大部分地区而言,您只是让您的生活变得更加困难,并且通过使用它们来请求奇怪的错误。仔细踩踏。

+0

看起来就像那样。我正在考虑的场景是用于stat和其他分析信息的数据仓库。我需要RDBMS的灵活性,但同时我预测对于一些性能关键的查询,我需要额外的能力来使查询解析器和线程协议开销尽可能地超出我的方式 - 以便速度够快。我必须对其进行测试,但似乎可以提供替代选项 - 但正如您所说的 - 只有在必要的情况下才可以。感谢您的链接,我同意谨慎。 –

+0

我想你可能会感到惊讶。如果单个机器是简单的类型,可以通过HandlerSocket或Memcached接口完成,MySQL每秒能够在单台机器上执行数以万计的查询。 – jeremycole

相关问题