Ограничения

We use cookies. Read the Privacy and Cookie Policy

Ограничения

Firebird допускает до 256 определенных пользователем индексов на одну таблицу в версии 1.5 и выше, и 64 в более ранних релизах. Однако это теоретические ограничения, которые могут быть скорректированы за счет размера страницы и фактического размера на диске данных описания индекса в корневой странице индекса. Вы не сможете хранить 256 индексов в базе данных с размером страницы менее 16 Кбайт. На корневой странице индекса каждому индексу нужен 31 байт для его идентификатора, место для описания каждого сегмента (столбца), включенного в состав индекса, и несколько байтов для хранения указателя на первую страницу индекса. Даже страница в 16 Кбайт может не оказаться способной хранить 256 индексов, если в базе данных существует немало составных индексов.

Для создания индексов пользователь должен иметь право соединяться с базой данных.

Общая длина индекса не может превышать 252 байта. В реальности количество байт может быть значительно меньше. Факторами, которые могут уменьшить количество фактических "мест", доступных для хранения символов, являются:

* интернациональные наборы символов, использующие несколько байт на символ;

* интернациональные наборы символов со сложными парами верхний/нижний регистры и/или сложным словарем правил сортировки;

* использование недвоичных порядков сортировки;

* множество сегментов (составной индекс), которые требуют дополнительных пустых байтов для сохранения геометрии индекса.

Другими словами, использование любого набора символов за исключением NONE будет влиять на ваши решения по проектированию индексов - особенно на использование составных индексов. Это плохие новости. Хорошие новости- Firebird правильно использует индексы из одного столбца в многостолбцовых поисках и сортировках, сокращая потребность в многостолбцовых индексах, которые вы могли использовать в других СУБД.