[英]Which Database engine for large dataset
我正在進行分析任務,我們從大學圖書館獲得了部分數據集,其中包含近300.000.000行。
每行包含:
我將所有這些內容放入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.