SQLite: что может привести к сбою индексации?

#sqlite #indexing #output #terminate

#sqlite #индексирование #вывод #завершить

Вопрос:

Это очень общий вопрос:

Можете ли вы назвать причину, по которой следующее будет прерываться в очень больших таблицах (> 1 миллиарда строк)?

 sqlite3 sample_DB.db "CREATE INDEX IF NOT EXISTS sample_index ON sample_table(sample_row)"
  

Я пробовал это пару раз, и кажется, что это даже не выдает никакого сообщения об ошибке, но в какой-то момент обработка останавливается, и индекс не отображается .schema .

Жесткий диск не заполнен. В основном обработка не потребляет память, а если бы и потребляла, то доступно достаточно.

Объем базы данных превышает 800 ГБ, но я думал, что ограничение на размер файла для ext4 составляет 2 ТБ.

В текущем состоянии базы данных:

  • PRAGMA page_size ВОЗВРАТ 4096
  • PRAGMA page_count ВОЗВРАТ 185974887
  • PRAGMA max_page_count ВОЗВРАТ 1073741823
  • PRAGMA freelist_count ВОЗВРАТ 0

Комментарии:

1. У вас синтаксическая ошибка, потому что вы не указали, какие столбцы индексировать … sqlite.org/lang_createindex.html

2. Извините, у меня нет синтаксической ошибки в реальном коде, позвольте мне исправить это здесь…

3. Так-то лучше. Следующий вопрос: каков размер страницы и максимальное количество страниц (и текущее количество страниц)?

4. Что насчет PRAGMA max_page_count ?

5. (Мне интересно, достаточно ли места на странице для хранения индекса, который вы пытаетесь создать)