我有一個50MB的sqlite數據庫。我想運行一個查詢或報告來指出哪些表/列/行正在存儲多少數據。有沒有辦法查詢一個特定的表或列在sqlite中存儲多少數據?
我的目的是優化我怎麼了存儲數據,減少數據庫的足跡。
我熟悉的真空命令SHINK數據庫。但我有興趣改進對我存儲的圖像和其他數據的壓縮,並希望能夠測量前後的結果,並將我的努力目標定位在最具生產力的地方。
任何查詢或工具(免費或以其他方式)能夠完成,這將滿足的問題。
我正在使用sqlite3。
我有一個50MB的sqlite數據庫。我想運行一個查詢或報告來指出哪些表/列/行正在存儲多少數據。有沒有辦法查詢一個特定的表或列在sqlite中存儲多少數據?
我的目的是優化我怎麼了存儲數據,減少數據庫的足跡。
我熟悉的真空命令SHINK數據庫。但我有興趣改進對我存儲的圖像和其他數據的壓縮,並希望能夠測量前後的結果,並將我的努力目標定位在最具生產力的地方。
任何查詢或工具(免費或以其他方式)能夠完成,這將滿足的問題。
我正在使用sqlite3。
sqlite3_analyzer
顯示多少空間表和索引佔用。
這應該工作。
SELECT SUM(len) FROM (
SELECT length(column_name) AS len FROM table_name);
這是一個很好的答案。我用它來確定哪些列正在使用給定表上的空間最多。我從CL中選擇了答案,因爲它按表提供了整個數據庫表的完整列表。從那裏,如果我需要進一步研究,我使用您提供的查詢。感謝您花時間發佈答案。 – Mike 2013-03-29 01:07:34
真空後文件系統的大小是衡量這一點的實用方法嗎? – 2013-03-28 04:53:10
是的,對於表格/列/字段/行,我知道佔用的空間最多。它足夠大的模式,我想知道在哪裏尋找優化領域。我可能只關注一個表/列,而不會意識到另一個表是真正的數據集。 – Mike 2013-03-28 04:55:51
我想你必須在之前和之後抽真空,如果你期望它是活躍的,這是不切實際的。 – 2013-03-28 05:01:36