来自docs ,它指出:
The CSV storage engine stores data in text files using comma-separated values format.
这样做有什么好处?以下是我能想到的一些:
- 您可以使用简单的文本编辑器编辑 CSV 文件(但是,您可以使用
SELECT INTO OUTFILE
轻松导出数据) - 可以很容易地导入到电子表格程序中
- 轻量级且性能可能更好(大胆猜测)
有哪些缺点?
- 没有索引
- 不可分割
- 无交易
- 不能有 NULL 值
考虑到这个(非详尽的)优点和缺点列表,在哪些实际场景中我应该考虑使用 CSV 存储引擎而不是其他引擎?
最佳答案
我很少使用 CSV 存储引擎。不过,我发现它很有用的一个场景是批量数据导入。
- 创建一个表,其中的列与我输入的 CSV 文件相匹配。
- 在 mysql 之外,只需使用 shell 提示符,
mv
将 CSV 文件放入 MySQL 数据字典,覆盖属于我刚创建的表的 .csv 文件。 ALTER TABLE mytable ENGINE=InnoDB
瞧!使用 DDL 而非 INSERT 或 LOAD DATA 一步导入巨大的 CSV 数据文件。
诚然,它不如 INSERT 或 LOAD DATA 灵活,因为您不能对单个列执行 NULL 或自定义覆盖,也不能使用任何“替换”或“忽略”功能来处理重复值。但是,如果您有一个输入文件正是您要导入的文件,则可以使导入变得非常容易。
关于mysql - 什么时候为 MySQL 使用 CSV 存储引擎?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26491823/