クエリの実行プランを確認して、なぜ遅いのかを調べたいのですが、ANALYZEが機能していないようで、EXPLAINが受け入れるのと同じクエリでエラーがスローされます。
_MariaDB [dbx]> explain select `id` from `pics` where `user_id` = '3';
+------+-------------+-------+------+---------------+---------+---------+-------+------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+------+-------------+-------+------+---------------+---------+---------+-------+------+-------+
| 1 | SIMPLE | pics | ref | user_id | user_id | 4 | const | 1087 | |
+------+-------------+-------+------+---------------+---------+---------+-------+------+-------+
1 row in set (0.00 sec)
MariaDB [dbx]> analyze select `id` from `pics` where `user_id` = '3';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'select `id` from `pics` where `user_id` = '3'' at line 1
_
mysql Ver 15.1 Distrib 10.0.14-MariaDB, for Linux (x86_64) using readline 5.1
を使用します
[〜#〜] Explain [〜#〜] クエリの実行プランを取得します
ANALYZE TABLE インデックス統計を再計算します。だからただ走る
ANALYZE TABLE `pics`;
試してみる !!!