簡體   English   中英

大型數據集的數據庫引擎

[英]Which Database engine for large dataset

我正在進行分析任務,我們從大學圖書館獲得了部分數據集,其中包含近300.000.000行。

每行包含:

  • ID
  • 日期
  • 所有者
  • 最后期限
  • 離開日期
  • 登記日期

我將所有這些內容放入MySQL表中,然后開始查詢以進行我的分析任務,但是需要簡單的查詢( SELECT * FROM table WHERE ID = something ),需要9到10分鍾才能完成。 因此,我為所有列創建了索引,這使其索引速度提高了約30秒。

因此,我開始閱讀類似的問題,人們建議切換到“寬列存儲”或“搜索引擎”,而不是“關系”。

所以我的問題是,用於此數據的最佳數據庫引擎是什么?

使用搜索引擎進行搜索是IMO的最佳選擇。

Elasticsearch當然!

免責聲明:我從事彈性工作。 :)

答案當然是“取決於”。 在您的示例中,您要計算具有給定ID的數據庫中的記錄數。 我很難相信,除非您使用的是筆記本電腦,否則在MySQL中這將花費30秒。

MySQL功能強大,功能穩定,性能相當好,因此它為數量眾多的系統提供了強大的動力。 在某些方面,這很不好(或者很糟糕),例如文本搜索,聚類等。

諸如Elasticsearch之類的系統可以處理大量的文本,但根據使用情況,仍然可能不適合您的系統。 從您的模式中,您有一個文本字段(“所有者”),並且不需要像這樣的字段(誰需要阻止用戶名?)上的Elasticsearch文本搜索功能。 Elasticsearch還廣泛用於日志文件,該日志文件也不需要文本引擎。 但是,這對於文本塊和聚類來說是很好的。

如果這是一個課堂作業,我會堅持使用MySQL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM