【发布时间】:2016-02-03 15:31:44
【问题描述】:
我有这张桌子:
CREATE TABLE `villes_france` (
`code_postal` varchar(10) NOT NULL DEFAULT '',
`code_insee` varchar(10) DEFAULT NULL,
`ville` varchar(255) DEFAULT NULL,
`region_rsi` varchar(2) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC;
它包含 36826 行,每个法国城市一个。
这里有趣的字段是code_postal(邮政编码)和ville(城市)。
我主要将它用于自动完成:当在一个输入中写入某些内容时,两个输入都被填充。
这是我的查询:
if($source == 'cp'){
$searchSQL = "SELECT code_postal as cp, ville FROM villes_france
WHERE code_postal LIKE :cp LIMIT 20";
}else{
$searchSQL = "SELECT code_postal as cp, ville FROM villes_france
WHERE ville LIKE :ville LIMIT 20";
}
(仅供参考,:cp 或 :ville 后附加一个“%”)
这些字段都不是唯一的(法国城市可以共享相同的邮政编码) 这个表几乎不会更新,但是会执行很多选择。
你会如何索引这个表?
我已经阅读了很多关于索引的内容,但在真正使用它们之前我想了解一下。
【问题讨论】:
-
我觉得你的问题和这个stackoverflow.com/questions/3695768/…有关