| Новости | 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) пишет в базу, а потом самоликвидируется без каких-либо ошибок и результатов, т.е. браузер продолжает ждать еще, пока сам не отвалится по таймауту.