- 深入理解InfluxDB:時序數據庫詳解與實踐
- 鄭強 張偉 劉爽
- 331字
- 2024-12-27 22:22:06
1.5.4 高性能
時序數據庫的一個重要特性就是高性能,這是支撐其處理大量數據的重要因素,決定了數據庫在高寫入高存儲時的表現。InfluxDB在這方面表現得很優秀,在同類別的時序數據庫中,InfluxDB的查詢性能測試都領先于其他數據庫數倍;在內置函數測試方面,其性能也是其他數據庫的數倍。
要做到如此高性能,首先需要解決高寫入吞吐量帶來的問題,InfluxDB一開始選擇了LevelDB作為存儲引擎。然而,面對越來越多的時間序列數據的需求,InfluxDB遇到了一些無法克服的挑戰。諸如LevelDB不支持熱備份,對數據庫進行安全備份需要關閉后才能復制;刪除過期數據代價過高,等等。
后來InfluxDB采用自研的TSM(Time-Structured Merge Tree)作為存儲引擎,其設計的核心思想就是犧牲部分功能來達到極致的性能。得益于自研的TSM存儲引擎,InfluxDB有著極強的寫入能力,它允許高吞吐量,壓縮和實時查詢同一數據。