Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
вопрос по индексам
|
|||
|---|---|---|---|
|
#18+
читаю статью https://ruhighload.com/Индексы в mysql раздел Проверка длинны составных индексов Значение key_len показывает используемую длину индекса. В нашем случае 24 байта — длинна всего индекса (5 байт age + 19 байт gender). разве age не 4 байта как целое? и откуда берутся 19 байт для gender ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2018, 18:56 |
|
||
|
вопрос по индексам
|
|||
|---|---|---|---|
|
#18+
Слово "длина" пишется через одну "н". tadeyilodaразве age не 4 байта как целое? https://dev.mysql.com/doc/refman/5.7/en/explain-output.html#explain_key_len Due to the key storage format, the key length is one greater for a column that can be NULL than for a NOT NULL column. tadeyilodaоткуда берутся 19 байт для genderНе вижу в указанной статье DDL используемой таблицы, так что можно только гадать. Да и вообще статья несколько поверхностная. Читайте лучше доку . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2018, 21:53 |
|
||
|
вопрос по индексам
|
|||
|---|---|---|---|
|
#18+
tadeyilodaоткуда берутся 19 байт для genderНу единственное предположение, почему для поля с двумя значениями 'male' и 'female' использовано 19 байт - это оттого, что "гениальный" автор указанного опуса использовал для этого поля текстовый тип VARCHAR(6) и трёхбайтовую кодировку, что даёт 18 байтов, да плюс один байт на хранение Null-признака. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2018, 07:45 |
|
||
|
вопрос по индексам
|
|||
|---|---|---|---|
|
#18+
tadeyilodaчитаю статью https://ruhighload.com/Индексы в mysql раздел Проверка длинны составных индексов Значение key_len показывает используемую длину индекса. В нашем случае 24 байта — длинна всего индекса (5 байт age + 19 байт gender). разве age не 4 байта как целое? и откуда берутся 19 байт для gender Хорошая статья, правильная. Дан главный совет: автор Не ссыте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2018, 13:11 |
|
||
|
вопрос по индексам
|
|||
|---|---|---|---|
|
#18+
MasterZivДан главный совет:Совет - дерьмо. День, максимум два - а потом лопнешь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2018, 13:52 |
|
||
|
вопрос по индексам
|
|||
|---|---|---|---|
|
#18+
авторЕсли мы выполним изменим точное сравнение на поиск по диапазону, увидим что MySQL использует только часть индекса mysql> EXPLAIN SELECT * FROM users WHERE age <= 29 AND gender = 'male'; +----+-------------+--------+------+---------------+------------+---------+------+------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------+------+---------------+------------+---------+------+------+-------------+ | 1 | SIMPLE | users | ref | age_gender | age_gender | 5 | | 82 | Using where | +----+-------------+--------+------+---------------+------------+---------+------+------+-------------+ почему часть индекса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2018, 16:44 |
|
||
|
вопрос по индексам
|
|||
|---|---|---|---|
|
#18+
tadeyilodaпочему часть индекса?Потому что по первому полю индекса происходит поиск по диапазону. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2018, 00:50 |
|
||
|
вопрос по индексам
|
|||
|---|---|---|---|
|
#18+
tadeyilodaпочему часть индекса?В поле key_len указывается не длина записи индекса, а размер префикса индекса, который будет использован в операции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2018, 07:28 |
|
||
|
вопрос по индексам
|
|||
|---|---|---|---|
|
#18+
miksofttadeyilodaпочему часть индекса?Потому что по первому полю индекса происходит поиск по диапазону. если условие не равно а больше\меньше то индекс не используется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2018, 07:49 |
|
||
|
вопрос по индексам
|
|||
|---|---|---|---|
|
#18+
tadeyilodaесли условие не равно а больше\меньше то индекс не используется?Может использоваться, а может и нет... Посмотри FAQ: Нахождение записей, где заданное значение находится между значениями полей - ведь BETWEEN есть ни что иное как два неравенства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2018, 08:05 |
|
||
|
вопрос по индексам
|
|||
|---|---|---|---|
|
#18+
Akina, база сама решает для больше\меньше нужно использовать индекс или нет? если не использует значит так и нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2018, 08:43 |
|
||
|
вопрос по индексам
|
|||
|---|---|---|---|
|
#18+
tadeyilodaбаза сама решает для больше\меньше нужно использовать индекс или нет? Ну не база, а сервер... построитель плана выполнения решает - на основании текста запроса, статистики таблиц и прочего (если интересно - почитай MySQL internals). Можно попытаться повлиять на это дело, запретив или, наоборот, зафорсив использование определённого индекса - но, как показывает реальный опыт, зачастую сервер оказывается более прав. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2018, 08:57 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39626439&tid=1829928]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 15ms |
| total: | 164ms |

| 0 / 0 |
