2014-02-06 43 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

相關問題