У меня есть таблица с 1,3 миллиона строк
У меня был smallint
(индексированный) столбец в этой таблице, и когда я выполнял очень простой запрос:
select * from table where field = x order by id limit 100
иногда (когда я менял x на разные значения) запрос был очень медленным (иногда 10-20 секунд).
Затем я изменил этот столбец на тип int
, а также создал индекс для этого столбца.
Теперь те же запросы выполняются намного быстрее, чем предыдущие, почти всегда они занимают не более 1 секунды.
Таким образом, smallint
занимает меньше места на диске, но чтение типа int
выполняется намного лучше.
Это правильно? если да, то почему?