MySQL Range Optimization и Multipart index - PullRequest
       45

MySQL Range Optimization и Multipart index

0 голосов
/ 19 ноября 2018

Привет, я новичок в 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

...