Я изучаю индексацию базы данных.
здесь указатели таблицы. И эта таблица имеет 330 тыс. Записей.
mysql> show index from employee;
+----------+------------+-------------+--------------+---------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible | Expression |
+----------+------------+-------------+--------------+---------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| employee | 0 | PRIMARY | 1 | id | A | 297383 | NULL | NULL | | BTREE | | | YES | NULL |
| employee | 0 | ak_employee | 1 | personal_code | A | 297383 | NULL | NULL | | BTREE | | | YES | NULL |
| employee | 1 | idx_email | 1 | email | A | 297383 | NULL | NULL | | BTREE | | | YES | NULL |
+----------+------------+-------------+--------------+---------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
Как видите, в этой таблице только три индексации.
Теперь я хочу выполнить запрос к столбцу where в birth_date
, я думаю, что он будет очень медленным, потому что нет индексации по столбцу birth-date
, я при попытке запроса обнаружил, что он очень быстрый.
mysql> select sql_no_cache *
-> from employee
-> where birth_date > '1955-11-11'
-> limit 100
-> ;
100 rows in set, 1 warning (0.04 sec)
Так что я в замешательстве:
- почему все еще так быстро без индексации?
- из-за его высокой скорости, зачем нам все еще нужно индексирование?