Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Maxx 15.06.2009 22:49 / 15.06.2009 23:02
@main[] ^connect[sqlite://:temporary:?autocommit=1]{ ^void:sql{ DROP TABLE IF EXISTS mss } ^void:sql{ CREATE TABLE IF NOT EXISTS mss (id int,mess text) } ^for[i](1;200){ ^void:sql{ INSERT INTO mss (id,mess) VALUES ('^math:random(2000000)','^math:md5[^math:random(2000000)]') } } }Этот код выполняется на моем компе (ms vista,c2d e8400, 2gb) примерно 4 секунды, аналогичный код для mysql - 0,03. Происходит так потому, что sqlite после каждого COMMIT закрывает файл, а перед следующим запросом (BEGIN) открывает, что на винде сказывается на производительности фатальным образом (слышал, что на *nix по-другому, но неначем проверить). Если количество итераций сделать 20000, то всё совсем печально - парсер ведет себя загадочно, несколько минут (~8-10) пишет в базу, а потом самоликвидируется без каких-либо ошибок и результатов, т.е. браузер продолжает ждать еще, пока сам не отвалится по таймауту.