我正在创建一个存储数百万条记录的表,即每天86400秒x 365天x 10年= 315,360,000行只有3列的记录, 使用datetime,decimal和smallint(仅3个字段)datetime作为索引。
我正在考虑将datetime转换为INT unsigned(PHP time())以减少存储空间。使用datetime,decimal和smallint,我有1个表的2.5GB。我没有尝试用INT替换DATETIME。
此表的插入是一次性作业,我将有大量的SELECT语句用于分析目的,因此我将InnoDB更改为MyISAM。
有任何想法或建议吗?
答案 0 :(得分:0)
索引是用于在表上更快搜索的事情之一: http://dev.mysql.com/doc/refman/5.7/en/mysql-indexes.html
在基本级别上,索引负责在搜索您要求的内容时使引擎不会遍历整个表。
链接中有关索引使用的一些内容:
快速查找与WHERE子句匹配的行。
消除行的考虑。如果之间有选择 多个索引,MySQL通常使用找到的索引 最小行数(最具选择性的索引)。
看看是否符合您的需求