Привет, я новичок в MySQL World.
Когда я читал об оптимизации диапазона MySQL, возник вопрос, касающийся многочастного индекса.
MySQL 5.7 Doc
(http://jorgenloland.blogspot.com/2011/08/mysql-range-access-method-explained.html)
Вопрос 1:
Что означает одиночный и непрерывный интервалы?
Вопрос 2:
Относится к Multipart index и keylen
Структура таблицы
Создание табличных заказов (customer_id int, значение int, имя varchar (20), первичный ключ (customer_id, значение));
A)
mysql> explain select * from orders where customer_id <= 2 and value = 1;
+----+-------------+--------+------------+-------+---------------+---------+---------+------+------+----------+-------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+--------+------------+-------+---------------+---------+---------+------+------+----------+-------------+
| 1 | SIMPLE | orders | NULL | range | PRIMARY | PRIMARY | 8 | NULL | 4 | 25.00 | Using where |
+----+-------------+--------+------------+-------+---------------+---------+---------+------+------+----------+-------------+
* * 1 022 В)
mysql> explain select * from orders where customer_id < 2 and value = 1;
+----+-------------+--------+------------+-------+---------------+---------+---------+------+------+----------+-------------+
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+----+-------------+--------+------------+-------+---------------+---------+---------+------+------+----------+-------------+
| 1 | SIMPLE | orders | NULL | range | PRIMARY | PRIMARY | 4 | NULL | 4 | 25.00 | Using where |
+----+-------------+--------+------------+-------+---------------+---------+---------+------+------+----------+-------------+
почему оператор объяснения (A) показывает keylen как 8 , но (B) показывает keylen как 4