我正在创建一个表来存储数百万条记录,即每天86400秒x 365天x 10年= 315,360,000行记录,其中只有3列,使用datetime、decimal和smallint (只有3个字段) datetime作为索引。
我正在考虑将datetime转换为INT unsigned (PHP time())以减少存储空间。加上datetime、decimal和smallint,1个表的大小为2.5‘m。我没有尝试用INT替换DATETIME。
对这个表的插入是一次作业,出于分析目的,我将使用大量的SELECT语句,因此我将InnoDB改为MyISAM。
有什么想法或建议吗?
发布于 2016-08-20 18:41:41
索引是用来在表上进行更快搜索的一种方法:http://dev.mysql.com/doc/refman/5.7/en/mysql-indexes.html
在基本级别上,索引负责使引擎在搜索所请求的内容时不会遍历整个表。
关于索引的使用,链接中说明了一些事情:
快速查找与WHERE子句匹配的行。
将行排除在考虑范围之外。如果可以在多个索引之间进行选择,MySQL通常会使用找到行数最少的索引(选择性最高的索引)。
看看这是否适合你的需要
https://stackoverflow.com/questions/39053140
复制相似问题