【发布时间】:2014-11-07 15:11:57
【问题描述】:
我正在尝试针对 3GB CSV 文件优化我的 MySQL 表结构。到目前为止,我已经成功导入了 19m+ 行中的 60%,MySQL 表大小为 5.5GB。如何优化表结构以减小数据库表大小? (因为我的磁盘空间快用完了!)
CSV 文件中的示例行是
"{0C7ADEF5-878D-4066-B785-0000003ED74A}","163000","2003-02-21 00:00","UB5 4PJ","T","N","F","106","","READING ROAD","NORTHOLT","NORTHOLT","EALING","GREATER LONDON","A"
...我的数据库结构是:
(
`transaction_id` int(10) unsigned NOT NULL,
`reference` varchar(100) COLLATE utf32_unicode_ci NOT NULL,
`price` int(10) unsigned NOT NULL,
`sale_date` date COLLATE utf32_unicode_ci NOT NULL,
`postcode` varchar(8) COLLATE utf32_unicode_ci NOT NULL,
`type` varchar(1) COLLATE utf32_unicode_ci NOT NULL,
`new_build` varchar(1) COLLATE utf32_unicode_ci NOT NULL,
`tenure` varchar(1) COLLATE utf32_unicode_ci NOT NULL,
`property_number` varchar(10) COLLATE utf32_unicode_ci NOT NULL,
`property_name` varchar(100) COLLATE utf32_unicode_ci NOT NULL,
`street` varchar(100) COLLATE utf32_unicode_ci NOT NULL,
`area` varchar(100) COLLATE utf32_unicode_ci NOT NULL,
`city` varchar(100) COLLATE utf32_unicode_ci NOT NULL,
`county1` varchar(100) COLLATE utf32_unicode_ci NOT NULL,
`county2` varchar(100) COLLATE utf32_unicode_ci NOT NULL,
`unknown` varchar(1) COLLATE utf32_unicode_ci NOT NULL
)
【问题讨论】:
-
您可能会询问 MySQL 本身有关您的数据的问题!试试
SELECT * FROM yourtable PROCEDURE ANALYSE;看看结果。 -
你为什么使用
utf32编码?如果这只是 ASCII,请使用utf8。这是一个很好的解释:stackoverflow.com/questions/496321/utf8-utf16-and-utf32.