Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Про поля BINARY(16), INT и BIGINT в больших таблицах
|
|||
|---|---|---|---|
|
#18+
Засада вот в чем. Есть несколько таблиц с довольно большим количеством записей 5000000-20000000, длина записи до 80 байт (2-3 небольших поля). В таблицах основное поле, по которому идут соединения имеет тип BINARY(16) (суть идентификатор objectа). Замечены большие чтения и тормоза в выполнении запросов. После замены типа BINARY(16) на INT (в целях отладки) с удивлением обнаружено совершенно иное построение плана выполнения запроса и ускорение его в несколько раз (при одинаковом наполнении таблиц и одинаковой структуре индексов). Дальше больше Замена INT на BIGINT дает совершенно обратный эффект, опять все тупит и план выполнения очень похож на вариант с BINARY(16). Причем замечено, что с INT оптимизатор применяет правильные по смыслу планы,а в ситуациях с BINARY(16) и BIGINT тупо строит HASH, что на большом количестве записей приводит к тормозам неимоверным. Такое ощущение, что оптимизатор знает, с BINARY(16) и BIGINT он может применить только HASH, когда с вариантом INT активно испотльуется MERGE и в небольших объемах LOOP. Статистику всех таблиц обновлял. Каков может быть выход и какие мнения ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2002, 15:57 |
|
||
|
Про поля BINARY(16), INT и BIGINT в больших таблицах
|
|||
|---|---|---|---|
|
#18+
А хрен ево знает.... Но как бывший программист могу сказать, что INT (32 бита) умещается в регистер процессора, а BIGINT и BINARY(16) ессесно нет и может храниться только в памяти, вот и получается что проц шустрее оперирует с INTом... Может в этом тоже дело ведь Мелкомягкий всегда гордился привязанностью к особенностями Интела ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2002, 07:17 |
|
||
|
Про поля BINARY(16), INT и BIGINT в больших таблицах
|
|||
|---|---|---|---|
|
#18+
Использовать int, где это возможно (обычно везде возможно). Bigint все же лучше, чем binary (но хуже, чем int). В совсем крайнем случае оптимизатору можно вправить мозги хинтами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2002, 07:27 |
|
||
|
Про поля BINARY(16), INT и BIGINT в больших таблицах
|
|||
|---|---|---|---|
|
#18+
запросы генерятся роботом и ставить хинты не представляется возможным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2002, 07:39 |
|
||
|
|

start [/forum/search_topic.php?author=TurboMutant&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
14ms |
get forum list: |
20ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 721ms |
| total: | 911ms |

| 0 / 0 |
