|
Максимальное количество строк
|
|||
---|---|---|---|
#18+
Подскажите, какое максимальное количество строк допустимо в SQLite. Здесь, http://www.sqlite.org/limits.html я этого предела не нашел. Или криво смотрел. Возможно это SQLITE_MAX_PAGE_COUNT? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2010, 14:14 |
|
Максимальное количество строк
|
|||
---|---|---|---|
#18+
1) Если практический интерес - то очень, очень много 2) Если теоретический интерес - то в районе 2^64 на таблицу ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2010, 15:34 |
|
Максимальное количество строк
|
|||
---|---|---|---|
#18+
именно практический. дело в том что при связи многие-ко-многим получается слишком уж здоровый справочник. но определенно могу сказать, что в 2^64 я вписываюсь :) спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2010, 15:56 |
|
Максимальное количество строк
|
|||
---|---|---|---|
#18+
Когда-то я некоторые свои тесты в блоге публиковал, в частности: Замечу, что при упорядоченной вставке 1 миллиарда первичных ключей в таблицу скорость вставки снижается всего лишь примерно на 3% - великолепный результат. Но это верно только до тех пор, пока вставляемые записи строго упорядочены. Так что можно очень много строк вставить, и даже не потерять в производительности. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2010, 20:15 |
|
Максимальное количество строк
|
|||
---|---|---|---|
#18+
А не подскажите ли, можно ли как-то ограничить количество строк в таблице? Т.е. если у меня в таблице уже есть 10 строк, то 11ю мне SQLite API вставить не даст и выдаст ошибку. Если же удалить одну строку из таблицы с 10ю строками, то еще одну строчку вставить будет можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2011, 09:59 |
|
Максимальное количество строк
|
|||
---|---|---|---|
#18+
youmych, Триггером. Например: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2011, 11:03 |
|
Максимальное количество строк
|
|||
---|---|---|---|
#18+
RXL, спасибо за совет. Я нашел решение проще и более эффективное для своей задачи (о ней ниже). Код: sql 1.
Правда тут ограничить можно не с точностью до строки, а с точностью до страницы. Когда достигается данное ограничение, то sqlite3_step() возвращает SQLITE_FULL. Видимо, я не совсем верно сформулировал задачу. Мне было необходимо как-то ограничивать размер файла БД, содержащего 4 таблицы, одна из которых очень большая (лог). Остальные таблицы не растут (справочники). Первый вариант такого ограничения - постоянный контроль кол-ва строк в растушей таблице и удаление "старых" строк. Уважаемый RXL предложил как раз такой вариант, за что ему спасибо. Второй вариант с PRAGMA мне подошел. Хочу еще заметить на счет решения RXL. Есть подозрение, что на больщих таблицах оно будет притормаживать. Под большими таблицами я понимаю таблицы, размер которых в разы больше размера RAM. У меня ее всего 128 Мб, посему 500Мб-1Гб файл - это уже много. В триггере содержится выражение SELECT COUNT(*) FROM t. Если его отдельно выполнять, то тормоза безбожные: Код: sql 1. 2.
Выполняется около 3 минут на 5 млн. таблице. Еще хуже такой вариант (ValueID - PRIMARY KEY AUTOINCREMENT): Код: sql 1. 2.
Возникает вопрос: какого не используются индексы? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 12:28 |
|
Максимальное количество строк
|
|||
---|---|---|---|
#18+
youmych, Ограничение страницами является ограничением по размеру файла. Оно не может гарантировать, что в базу поместится 10, а не 5 или не 105 строк. Также размер страниц может варьироваться от 512 до 65536 байт (зависит от версии и сборки). ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2012, 20:52 |
|
|
start [/forum/topic.php?fid=54&msg=37679190&tid=2009061]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 269ms |
total: | 386ms |
0 / 0 |