提起数据库的优化,这应该是首先想到的吧。以前没有试验环境,现在公司里数据多。扯了一部分,做这个试验,看它的效果。
表的结构如下所示(公司数据不方便公开,改了FIELDNAME):
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| of | char(9) | NO | MUL | NULL | |
| ti | time | NO | | NULL | |
| a | smallint(6) | YES | | NULL | |
| t | smallint(6) | YES | | NULL | |
| or | char(3) | YES | | NULL | |
| de | char(3) | YES | | NULL | |
执行SELECT * WHERE of = '某个值'; 用时27秒左右。CREATE INDEX ON F后,用时13秒,省了一半。
数据库是mysql 5.1, database engine是MyISAM, 估计用memory配上hash_table的组合还要快很多(MyISAM用的是B树做的INDEX)。
其他的数据库是怎样的呢?