Скорость ALTER TABLE ADD COLUMN в Sqlite3? - PullRequest
1 голос
/ 07 февраля 2012

У меня есть приложение для iOS, которое широко использует базы данных sqlite3.Мне нужно добавить столбец к хорошей части этих таблиц.Ни одна из таблиц не является тем, что я действительно считаю большим (я привык иметь дело со многими миллионами строк в таблицах MySQL), но, учитывая аппаратные ограничения устройств iOS, я хочу убедиться, что это не будет проблемой.Самые большие таблицы будут состоять из нескольких сотен тысяч строк.Большинство из них будет от нескольких сотен до нескольких тысяч или десятков тысяч.

Я заметил, что sqlite3 может добавлять столбцы только в конец таблицы.Я предполагаю, что это для некоторого типа оптимизации скорости, хотя, возможно, это всего лишь ограничение формата файла базы данных.

  1. Сколько времени занимает добавление строки в таблицу sqlite3?

  2. Это просто обновляет схему и не меняет данные таблицы?

  3. Увеличивается ли время с количеством строк или количеством столбцов, уже находящихся в таблице?


Я знаю, что очевидным ответом на этот вопрос является «просто тест», и я скоро это сделаю, но я не смог найти ответ по StackOverflow через несколько минутпоиска, поэтому я решил спросить, чтобы другие могли найти эту информацию легче в будущем.

1 Ответ

1 голос
/ 23 августа 2012

Из документации SQLite ALTER TABLE :

Время выполнения команды ALTER TABLE не зависит от Количество данных в таблице. Команда ALTER TABLE выполняется так же быстро для таблицы с 10 миллионами строк, как для таблицы с 1 строкой.

В документации подразумевается операция O (1). Это должно бежать в незначительное время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...