Заметки

SQL highload tricks

Почему varchar поле делают длинной 255, а не 256? 

В документации MySQL написано:

В столбце используется один байт длины, если для значений требуется не более 255 байтов, и два байта длины, если для значений может потребоваться более 255 байтов.

Это значит именно "256-1" и "1024-2".

Тем не менее для хранения значения "hello" требуется одинаковое количество места в столбце VARCHAR(5) и VARCHAR(200). Есть ли какое-то преимущество в использовании более короткой колонки?

Но в книге "High performance mysql 2" сказано `да`:

The larger column can use much more memory,
because MySQL often allocates fixed-size chunks of memory to hold values internally.
This is especially bad for sorting or operations that use in-memory temporary
tables. The same thing happens with filesorts that use on-disk temporary tables.
The best strategy is to allocate only as much space as you really need.

Ссылки:

 

NOT IN не использует ключей в отличие от IN

во всем коде перепишите запросы "NOT IN" на "IN"

Ссылки:

  • Antijoin in MySQL 8 - https://mysqlserverteam.com/antijoin-in-mysql-8/
Афоризм дня:
Мудрее всего – время, ибо оно раскрывает все. (540)

Leave a reply