2
A
回答
9
除非你正在做的事情非常瑣碎到CSV,只有這樣做一次,SQLite的將是運行速度更快,編碼時間,和維護的時間,這將更加靈活。
把CSV到的SQLite的主要優點是...
- 查詢與已知的查詢語言。
- 使用靈活的查詢語言進行查詢。
- 利用高性能索引。
- 不必編寫和維護並記錄和測試一堆自定義查詢代碼。
你可以看一下這樣的費用:
SQLite的
- 一旦...
- 創建模式。
- 將CSV導入SQLite(內置)。
- This may要求您編寫一些代碼來轉換值。
- [可選,但推薦]設置索引。
- 對於每個不同的查詢......
- 不要在SQL查詢。
CSV
- 對於每個不同的查詢......
- 編寫特殊代碼爲您的查詢。
- 文檔如何使用這個特殊的代碼。
- 測試您的特殊查詢代碼。
- 調試您的特殊查詢代碼。
- 運行您的特殊查詢代碼,必須...
- 閱讀CSV文件。
- 解析CSV文件。
- (可選)索引CSV文件。
- 想出索引方案。
- 運行您的查詢。
請注意,如果您的查詢是簡單的解析和運行可以一起發生。就像「查找字段5大於10的所有列」。
人們很容易忘記,即使你使用一個庫做的CSV解析,有編碼和維護成本編寫特殊的代碼來查詢一個CSV文件。 每個查詢必須進行編碼,測試和調試。 每個特殊情況或選項必須進行編碼,測試和調試。由於它是你製作的所有特殊材料,因此沒有任何約定可以遵循。來使用您的查詢程序的人必須瞭解它的功能和工作原理。如果他們想做什麼甚至略有不同的事情,他們(或你)必須進入代碼,理解它,修改它,測試它,調試它並記錄它。這會產生很多支持請求。
相比之下,SQLite要求您在SQL查詢之外編寫很少或沒有特殊代碼。 SQL是一種衆所周知的查詢語言。你可以說「這是一個SQLite數據庫」,很可能人們會知道該怎麼做。或者,他們會去學習SQL,這是一般適用的知識。而學習你的特殊CSV查詢程序是一次性的知識。
如果人們想要運行一個查詢,那麼您並沒有預料到他們可以自己編寫SQL。你不需要被打擾,而且他們也不需要拼出一堆代碼。
最後,SQLite的查詢時間將比使用索引表的索引好得多,而不是你或我可能寫的東西。 SQLite是一個由許多數據庫專家協作的數據庫。您可能不會超越他們用C編寫的精心優化的代碼。即使您可以略微提高性能,don't you have better things to do?
0
一個明顯的好處是,你不能索引一個CSV文件。如果您必須使用大型數據集的子集,那麼在sqlite表中的列上創建索引是一個優點。
相關問題
- 1. 性能 - FunctionCall vs事件vs操作vs委託
- 2. 用於iPhone的sqlite vs csv文件
- 3. Java的CSV文件操作
- 4. CSV文件數據操作
- 5. SQL VS C#聚合操作性能
- 6. CSV字段sqlite的搜索操作
- 7. VS 2012與VS 2010的互操作性
- 8. splunk vs cordys操作智能
- 9. 操縱CSV文件
- 10. Python性能:搜索大列表vs sqlite
- 11. SQLite的`IFNULL()``VS聚結()`性能
- 12. 性能問題 - iOS中的plist vs sqlite
- 13. 核心數據vs Sqlite和性能
- 14. ORMLite VS純SQLite的選擇性能
- 15. GAE數據存儲性能vs SQLite
- 16. 關閉csv文件的I/O操作
- 17. 在Python中操作csv文件
- 18. Enthought Canopy中的Python:操作csv文件
- 19. Ruby csv文件相關操作
- 20. 從讀和操作.csv文件
- 21. MVC操作返回CSV文件
- 22. CSV文件上的SQLite
- 23. SQLite的 - 從CSV文件
- 24. 的SQLite導入CSV文件
- 25. 上傳CSV文件,SQLite的
- 26. 將.CSV文件導入SQLite
- 27. CSV操作 - 文本刪除
- 28. 文件大小:CSV vs MySQL
- 29. SQLite的操作
- 30. 讀/寫性能:DiskLruCache VS文件系統