#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. (Мне интересно, достаточно ли места на странице для хранения индекса, который вы пытаетесь создать)