2016-08-20 52 views
0

我创建了一张表来存储数百万条记录,这就是它每天86400秒x 365天x 10年= 315,360,000行只有3列的记录, 带有datetime,decimal和smallint(只有3个字段)datetime作为索引。PHP在巨大的数据库中最快的查询mysql

我正在考虑将日期时间转换为INT无符号(PHP时间())以减少存储。用datetime,decimal和smallint,我有2.5GB的1张表。我还没有尝试用INT替换DATETIME。

对此表的插入是1次工作,并且我将有很多SELECT语句用于分析目的,因此我将InnoDB更改为MyISAM。

任何想法或建议?

+0

取决于你的选择。 –

+0

非常简单的选择,并且WHERE子句只指向第一个字段。 – Fire

+0

myisam或innodb在这种情况下怎么样?我应该去找myisam吗? – Fire

回答

0

指数是用来获取一个表上的更快的搜索的一件事: http://dev.mysql.com/doc/refman/5.7/en/mysql-indexes.html

在基础层面上,指标有责任寻找的东西,当你问的引擎不是在整个表遍历对于。

一些在关于使用索引的链接陈述的事情:

要找到匹配的快速WHERE子句的行。

消除考虑中的行。如果在多个索引之间可以选择 ,则MySQL通常使用查找最少行数(最具选择性的索引)的索引。

看看是否适合您的需要

+0

我了解索引部分,我的这里的情况只是单一索引,即Datetime或INT。 – Fire