Как-то заинтересовавшись SQLite я решил проверить, а не будет ли оно быстрее MySQL, или хотя бы равным по скорости.
Я исходил из того, что SQLite скорее всего будет удобна для мелких таблиц, типа простых счетчиков посещений.
Поэтому провел тесты следующим способом: я пять раз мерял время по 100 циклов обновления записи в базе и пять раз по 100 чтения.
Код
Итак, в статье убеждали: "В последнее время, вы, возможно, слышали о новом расширении для PHP: SQLite. Есть много причин, по которым SQLite может показаться лучшим достижением с тех пор, как научились резать хлеб. SQLite предлагает добротный SQL интерфейс к нерелятивистской базе данных и создаёт элегантную альтернативу громоздким интерфейсам других баз данных без потери функциональности или скорости, как можно было бы ожидать.".
Смотрим что же получилось по тестам…
Удивительный провал на запись и преимущество в чтении. Однако спасибо ptalus, который пролил свет на это дело. В мануале написано, что для каждой записи файл открывается-закрывается, что и влечет за собой такую тормознутость, однако стоит добавить
sqlite_query($dbhandle, 'BEGIN;');
sqlite_query($dbhandle, 'COMMIT;');
вокруг запроса и время записи просто магически меняется.
Запись:
0.014724016189575
0.014418125152588
0.015676975250244
0.014610052108765
0.014219999313354
Среднее:
0.014729833602905
ЗЫ: тесты на время провожу в первый раз, подскажите, если где лоханулся.
Я исходил из того, что SQLite скорее всего будет удобна для мелких таблиц, типа простых счетчиков посещений.
Поэтому провел тесты следующим способом: я пять раз мерял время по 100 циклов обновления записи в базе и пять раз по 100 чтения.
Код
тут
.Итак, в статье убеждали: "В последнее время, вы, возможно, слышали о новом расширении для PHP: SQLite. Есть много причин, по которым SQLite может показаться лучшим достижением с тех пор, как научились резать хлеб. SQLite предлагает добротный SQL интерфейс к нерелятивистской базе данных и создаёт элегантную альтернативу громоздким интерфейсам других баз данных без потери функциональности или скорости, как можно было бы ожидать.".
Смотрим что же получилось по тестам…
SQLite MySQL Запись 0.45911908149719 0.031841039657593 0.46412396430969 0.031555891036987 0.49027895927429 0.029323101043701 0.46884489059448 0.029382944107056 0.50253915786743 0.028644800186157 Среднее 0.47698121070862 0.030149555206299 Чтение 0.026177883148193 0.060520172119141 0.026360988616943 0.059216022491455 0.026273012161255 0.062637090682983 0.026113986968994 0.062775135040283 0.026944160461426 0.062674045562744 Среднее 0.026374006271362 0.061564493179321
Удивительный провал на запись и преимущество в чтении. Однако спасибо ptalus, который пролил свет на это дело. В мануале написано, что для каждой записи файл открывается-закрывается, что и влечет за собой такую тормознутость, однако стоит добавить
sqlite_query($dbhandle, 'BEGIN;');
sqlite_query($dbhandle, 'COMMIT;');
вокруг запроса и время записи просто магически меняется.
Запись:
0.014724016189575
0.014418125152588
0.015676975250244
0.014610052108765
0.014219999313354
Среднее:
0.014729833602905
ЗЫ: тесты на время провожу в первый раз, подскажите, если где лоханулся.