Я работаю над проектом, который должен сильно выиграть от использования одного файла базы данных для каждой таблицы, главным образом потому, что я пытаюсь избежать слишком большой базы данных, но также из-за проблем с блокировкой файлов .
Я думал об использовании оператора ATTACH
для создания «виртуальной» базы данных со всеми моими таблицами, но я только выяснил, что, хотя верхний предел подключенных баз данных – 62 (что было бы вполне приемлемо для меня), предел по умолчанию для подключенных баз данных на самом деле 10, на странице ограничений SQLite :
Максимальное количество подключенных баз данных
Оператор ATTACH является расширением SQLite, которое позволяет связать две или более базы данных с одним и тем же соединением с базой данных и работать так, как если бы они были единой базой данных. Количество одновременно прикрепленных баз данных ограничено SQLITE_MAX_ATTACHED, которое по умолчанию установлено в 10. Генератор кода в SQLite использует растровые изображения для отслеживания подключенных баз данных. Это означает, что число подключенных баз данных не может быть увеличено выше 62.
Поскольку мне нужно будет поддерживать более 10 таблиц, мой вопрос в том, как установить переменную SQLITE_MAX_ATTACHED
на более высокое значение из PHP (используя PDO с SQLite 3)?
Эти ограничения являются параметрами времени компиляции .
Вы должны перекомпилировать PHP, чтобы изменить их.