50
подходит только для простых и не глобальных решений
нет автоинкремента потому приходится создавать генератор
(использование которого аукается некоторыми весьма неприятными
последствиями). А именно в FireBird для поля введён некий генератор. т. е.,
чтобы всё-таки получить очередное уникальное значение, сначала потребуется
увеличить значение генератора. Нужно создать запрос, получить результат,
обработать его в программе, и уже с ним генерить второй запрос INSERT INTO
catalog VALUES(, 'text value');таким образом получаем два запроса к БД вместо
одного, и два обработчика на стороне клиента. Иными словами, получаем
двойные накладные расходы на каждом запросе записи.
Элементарный и наиболее часто используемый запрос выбора всех
записей таблицы типа SELECT * FROM driver WHERE id = 1 сразу возвращает
все что нам нужно и цифровые и текстовые данные,но Firebird не делает этого -
вместо ожидаемого текста возвращается идентификатор (BLOB_ID), с помощью
которого (и дополнительного запроса!) можно получить значение поля. а если
всё-таки нужно получать текст, то полю назначается другой тип:
VARCHAR(32765). Как итог накладные расходы на селект выростают в 4 раза.
По сравнению с другими БД.
А нам как раз нужно совершать огромное количество именно SELECT.
Невозможно себе позволить такие накладные расходы. БД Firebird не подходит
однозначно.
Лучшая по результатам линейных SELECT всегда была и остается MySql
обгоняя любые другие БД. MySql проигрывает почти всем при выполнении
сложных составных запросов, требующих промежуточных вычислений самой
БД, но в программах документооборота таких нет. По крайне мере всегда можно
согласиться в одном или двух местах на некоторое увеличение накладных
расходов, но это не будут постоянные и неоправданные расходы при всех
SELECT которые неизбежны с Firebird. Единственное преимущество Firebird в
том что на него можно возложить обработку запросов которые имеют данные
связанные между собой, но находящиеся в разных таблицах. В нем нет нет
хранимых процедур, триггеров и еще много чего. Но все это можно сделать