我有這樣的查詢:如何索引 - 優化這個MySQL查詢?
SELECT id, terrain, occupied, c_type
FROM map
WHERE x >= $x-$radius
AND x <= $x+$radius
AND y >= $y-$radius
AND y <= $y+$radius
ORDER BY
x ASC,
y ASC
我的表看起來像這樣:
CREATE TABLE `map` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`occupied` tinyint(2) NOT NULL DEFAULT '0',
`c_type` tinyint(4) NOT NULL DEFAULT '0',
`x` int(11) NOT NULL,
`y` int(11) NOT NULL,
`terrain` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4_general_ci
我刪除了所有指數除PRIMARY KEY,因爲我不確定如何索引原理與SQL。 我能做些什麼來調整這個查詢?謝謝...
這不是重複的,檢查評論!
查看https://stackoverflow.com/questions/3567981/how-do-mysql-indexes-work – SolarBear
可能重複[MySQL索引如何工作?](http://stackoverflow.com/questions/3567981/ how-do-mysql-indexes-work) – SolarBear
當您按指定的字段使用WHERE語句數據庫搜索數據時。所以你可以在'x'和'y'中添加索引。 –