私はこのようなクエリがあります:私は、インデックスがSQLで動作しない方法がわからないですので、私は、PRIMARY KEYを除くすべてのインデックスを削除このMySQLクエリのインデックスをどのように最適化できますか?
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
:
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
を私のテーブルは次のようになります。 このクエリを調整するにはどうすればよいですか?ありがとう...
これは重複していません、コメントを確認してください!
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'にインデックスを追加することができます。 –