有沒有人有過使用MonetDB的經驗?目前,我有一個MySQL數據庫太大,查詢速度太慢。根據面向列的範例,插入會更慢(我根本不介意),但是數據檢索變得非常快。我是否有機會通過切換到MonetDB來獲得更多的數據檢索性能? MonetDB是否足夠成熟?是否值得嘗試MonetDB?
回答
您有機會改善應用程序的性能。但是,收益在很大程度上取決於您的工作量,數據庫大小和硬件。 MonetDB根據兩個主要假設進行開發/調整:
- 您的工作量是分析性的,即您有很多(分組)聚合等等。
- 更重要的是:您的熱門數據集(您實際使用的數據)適合您系統的主內存。 MonetDB沒有自己的緩衝區管理器,但依靠操作系統來處理磁盤I/O。由於操作系統(特別是windows,但也是Linux)有時對於磁盤交換非常愚蠢,可能會成爲一個問題(特別是對於內存不足的連接)。
至於成熟度,可能會比居住在這個星球上的人更多的意見。就我個人而言,我覺得它已經夠成熟了,但我是開發團隊的成員,因此有偏見。但MonetDB是一個研究項目,所以如果你有一個有趣的應用程序,我們很樂意聽到它,看看我們能否提供幫助。
一些進一步的描述:假設我的表有這些字段(name,birth_date,social_security_id,drivers_licence_id,annual_income),我希望能夠做到這一點:select *從DATE1和DATE2之間的名稱>「M」和birth_date的人年收入在10到100之間;而且我希望能夠排序這些字段中的任何一個。如果表格增長的很大,所有這些範圍都會導致性能下降。我覺得MonetDB在這種情況下幫不了什麼忙,但如果機會不大,我會試一試。 – martincho
那麼,我會說這取決於你的中間結果的大小(即,符合每個條件的元組的數量)。如果他們的ID(內部64位整數)適合主內存,你應該沒問題。如果沒有,如果你省略'order by',它可能仍會表現得體。關於MonetDB的一點需要注意的是,所有的操作都非常有效地實現,但是所有的中間結果都在主內存(或潛在的磁盤)上實現,如果沒有足夠的內存,可能會導致性能下降。我想說你可以試試MonetDB。 – Holger
「適合內存」壓縮還是解壓縮?我的意思是,我是否有足夠的RAM來適應「dbfarm」文件夾的所有內容? (用一張大桌子談論一個數據庫)。謝謝 – GBrian
答案當然取決於你的有效載荷,但我的經驗,到目前爲止似乎表明,一切比我在MySQL已經看到了MonetDB更快。連接是個例外,它不僅看起來很慢,而且在流水線上看起來完全沒有用,所以你最終需要大量的內存來處理大內存。這就是說我在MySQL中加入的經驗並不是很好,所以我猜你的期望可能很低。如果你真的想要良好的連接性能,我可能會推薦SQL Server或類似的東西;對於您在後續評論中提到的其他查詢,MonetDB應該很棒。
例如,如果一個表格中有大約2百萬行,我可以在一列(範圍內有大約800K行)範圍內排列,然後按另一列排序,然後處理並返回有限的結果在25ms內。這些類型的查詢的性能似乎會隨着規模而降低,但這應該讓您體驗到您在該規模上可能會期望的結果。
我要告誡大家,樂觀併發模型可能甩開那些只暴露於悲觀併發(大多數人)。我想研究它之前,想知道爲什麼你的一些提交在併發負載下失敗。
我想說大多數人都熟悉OCC模型,因爲大多數ORM都這麼做。另一方面,悲觀併發性和MVCC大多數人並不熟悉它(MySQL並沒有原始的支持它,大多數非企業Web應用程序都沒有事務,一些ORMS甚至不支持行/表鎖定)。 –
- 1. 預加載20MB以上的圖片。這是否值得嘗試?
- 2. Monetdb-MonetDB是否是內存中的數據庫?
- 3. 是否有「嘗試」慣例?
- 4. 是否有MonetDB功能,等效於IF?
- 5. MonetDB; !致命:BBPextend:嘗試擴展超出限制的BAT池(16384000)
- 6. 測試以及與MonetDB
- 7. 是值得嘗試的Spring應用程序的混淆嗎?
- 8. 嘗試Convert.ToInt32(值)
- 9. 試圖獲得嘗試從1開始而不是0的嘗試次數
- 10. 嘗試檢查int []是否爲空Java
- 11. 可調用(obj)是否嘗試調用?
- 12. 交易是否需要嘗試追蹤?
- 13. 您是否已經嘗試過Spring Workflow?
- 14. 斯卡拉的嘗試是否透明?
- 15. 是否值得壓縮BLOB?
- 16. CSS3是否值得呢
- 17. 緩存localtime_r()是否值得?
- 18. 嘗試匹配是在GROUP_CONCAT多個值
- 19. 是MonetDB使用SIMD指令
- 20. 將不正確的值讀入變量的嘗試是否會改變其值?
- 21. 如何在MonetDB中調試SQL/Python UDF
- 22. 在生產中運行e2e測試是否值得?
- 23. DirectX碰撞測試。 - 製作自己的引擎是否值得?
- 24. 下面的代碼是否值得單元測試?
- 25. 這是否(x)只是獲得價值?
- 26. 是否閱讀搖擺是值得的?
- 27. MonetDB是時間戳保證是唯一
- 28. MonetDB的代碼是否包含X100(VectorWise)的研究?
- 29. 是否可以按MonetDB中的小寫進行排序?
- 30. 如何檢查我是否配置了monetdb來使用BWD?
任何比較MonetDB與Hyperdex,Aerospike,DynamoDB,Voldermort,VoltDB或ExtremeDB的基準? – skan
只是想知道你是否試過MonetDB?如果表現對你有好處? – carfield