lucas
Guest
БД на файлах и MySQL -- скорость
В настоящее время я занят переписыванием собственной CMS.
Обнаружил недавно весьма поразившую меня вещь:
1. В первой версии все данные у меня хранились в файлах такой структуры:
Загружалась такая база так:
Обращался я к ней так:
1. Через считывание в переменную всего массива.
2. Через перебор массива и поиск нужного значения по ключу/подстроке.
2. Решил избавляться от извратов типа базы данных на файлах и поставил себе MySQL. Переписал систему, банально изменив класс интерфейса к базе данных.
Базы данных приобрели такую структуру:
Обращался я к ней так:
1. К всей:
2. К строке:
При этом обнаружилась интересная вещь: время генерации страницы в первом случае составляет 0.06, во втором -- 0.13. (В обоих случаях кол-во запросов к базе составляет ~10; в первом случае применяется кеширование прочитанной базы.)
Тестирование проводил на Windows XP Prof. (FAT 32), Apache 1.3.12, PHP 4.3.0, MySQL 4.0.14b.
При этом код в версии 1 и версии 2 абсолютно идентичен, за исключением классы базы данных.
Хотелось бы узнать ваше мнение о результатах теста.
В настоящее время я занят переписыванием собственной CMS.
Обнаружил недавно весьма поразившую меня вещь:
1. В первой версии все данные у меня хранились в файлах такой структуры:
PHP:
<? $database[1] = array(" . . . "," . . . "," . . . ") ; ?>
PHP:
$database = array() ;
include($path) ;
1. Через считывание в переменную всего массива.
2. Через перебор массива и поиск нужного значения по ключу/подстроке.
2. Решил избавляться от извратов типа базы данных на файлах и поставил себе MySQL. Переписал систему, банально изменив класс интерфейса к базе данных.
Базы данных приобрели такую структуру:
PHP:
create table table_name(
id int unsigned not null primary key auto_increment
, time int unsigned not null
, is_visible enum('" . ok . "', '') not null default ''
, . . . tinytext
, . . . tinytext
)
1. К всей:
PHP:
select * from table_name where is_visible = '" . ok . "'
PHP:
select * from table_name where id = '" . $id . "' and is_visible = '" . ok . "'
Тестирование проводил на Windows XP Prof. (FAT 32), Apache 1.3.12, PHP 4.3.0, MySQL 4.0.14b.
При этом код в версии 1 и версии 2 абсолютно идентичен, за исключением классы базы данных.
Хотелось бы узнать ваше мнение о результатах теста.