Подбор СУБД

[Удален]
#61
Как писал alyak
Простой пример , таблица из одного поля INT ( 4 байта) , индекс построенный по этому значению будет занимать ( 4 + 4(размер указателя) ) * 3/2 (заполняемость) или на 1 значение - 12 байт, что ~ в 3 раза превысит оригинальный размер таблицы. И это не вина разработчика , а особенность хранения данных .

По mysql прочтите раздел "Estimating Query Performance".

Я не собираюсь с вами спорить по поводу уровня знания устройства MySQL, просто приведу один текущий пример:

Размер таблицы: 82155K

Размер индекса: 93321K

Таблица состоит из столбцов:

a int(10),b varchar(255),c int(11),d timestamp;

и имеет следующие индексы:

a,b(на 255 байт!)

и содержит чуть более 3'000'000 строк.

Как видно из примера размер индекса примерно равен размеру таблицы, а не больше её в 3-е раза, как вы утверждаете, должно быть по документации.

A
На сайте с 02.10.2004
Offline
31
#62

Молодой человек, вы видимо не прочитали ту главу и не засели за калькулятор. Да , ваш пример скорее всего правильный. Потому что на больших таблицах ( с длинными полями) размер указателя хранящегося в индексе будет не существенным относительно всей длинны индекса, но для поискового сервера вам понадобаться микротаблицы типа KeywID , PageID , pos1, pos2 . И на них размеры индекса превысят размер таблицы. Да и в вашем примере превышает , но не существенно.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий