Sqlite3: Отключение первичного ключа индексирует при вставке?

makemigrations Джанго отвечает за создание new migrations based on the changes detected to your models ( https://docs.djangoproject.com/en/2.1/ref/django-admin/#django-admin-makemigrations ). 115]

Вы должны запустить makemigrations перед запуском migrate, так как последний применяет новые миграции, обнаруженные первым, к базе данных.

13
задан Dimitri Tcaciuc 25 April 2009 в 17:20
поделиться

3 ответа

  1. Вы не можете удалить встроенный индекс, так как это единственный адрес строки.
  2. Объедините ваши 2 целочисленных ключа в один длинный ключ = (key1 << 32) + key2; и сделать это как INTEGER PRIMARY KEY в схеме youd (в этом случае у вас будет только 1 индекс)
  3. Установить размер страницы для новой БД не менее 4096
  4. Удалить ЛЮБОЙ дополнительный индекс, кроме основного
  5. Заполнить данные в порядок SORTED, так что первичный ключ растет.
  6. Повторно используйте команды, не создавайте их каждый раз из строки.
  7. Установите размер кэша страницы равным количеству оставшейся памяти (помните, что размер кэша указан в количестве страниц , но не число байтов)
  8. Зафиксируйте каждые 50000 элементов.
  9. Если у вас есть дополнительные индексы - создавайте их только ПОСЛЕ ВСЕХ данных в таблице

Если вы сможете объединить ключ (я думаю, что вы ' использовать 32-битные, в то время как sqlite использует 64-битные, так что

11
ответ дан 1 December 2019 в 22:58
поделиться

Вы делаете ВСТАВКУ каждого нового как отдельную транзакцию?

Если вы используете строки BEGIN TRANSACTION и INSERT в пакетах, то я думаю, что индекс будет перестраиваться только в конце каждой транзакции.

6
ответ дан 1 December 2019 в 22:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: