Как думаете что еффективней один запрос или один файл (кеширование)

Кощей

if(!$needle) die("ooh");
Как думаете что еффективней один запрос или один файл (кеширование)

Вот кеширую я обьект, сериализирую и тп. В плане нагрузки на сервер что займет меньше ресурсов вынять эту строку из ячейки из БД или через функцию file() взять всё что в файле?
 

Кощей

if(!$needle) die("ooh");
Ну оно раз на раз то одно то другое свиду одинаково выходит.
 

Кощей

if(!$needle) die("ooh");
SQL оказалось быстрее)

Вот создал 1000 файликов с одним текстом, также с создал табличку и 1000 записей с темже текстом и для определения записи уникальный индекс id.

Брал текст так:
PHP:
$i=0;
while($i<=1000){
$html = implode('', file ("$rp/new/cache/fls/file$i.txt"));
$i++;
}
а из базы
PHP:
$i=0;
while($i<=1000){
	$sql=sql("SELECT `txt` FROM `test_sql_txt` WHERE `id`='$i'");
	$row=mysql_fetch_assoc($sql);
	$html = $row['txt'];
	$i++;
}
Вышло в среднем в текстовом варианте 0.28-.035сек, а с базой 0.17-0.19
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Почему не
file_get_contents
?
 

Nelius

кипарис во дворе
а почему не так:

for($i=0;$i<1000;$i++) {
$html = file_get_contents($rp.'/new/cache/fls/file'.$i.'.txt');
}

И вообще странное у вас тестирование)
 

Кощей

if(!$needle) die("ooh");
Может я сильно ресурсоемко из файла данные вынимаю, через ф опен быстрее, не?

-~{}~ 06.11.07 20:04:

Nelius
сейчас итак проверю)

-~{}~ 06.11.07 20:06:

Nelius
вашим методом меньше но не сильно, при 10000 запросах 2.7-2.8сек зато выше 3 ниразу небыло

sql 1.7-1.8 как и раньше
 

Nelius

кипарис во дворе
Поправил код:

Думаю так быстрее всего:
PHP:
for($i=0;$i<1000;$i++) {
    $html = file_get_contents($rp.'/new/cache/fls/file'.$i.'.txt'); 
}
Обратите внимание на одинарные кавычки, работают быстрее чем двойные.
Перед тестированием советую вырубить весь софт, особенно антивирус.

-~{}~ 06.11.07 20:08:

Но, мое мнение в целом, БД бесспорно быстрее.
 

Кощей

if(!$needle) die("ooh");
Nelius
Одно и тоже, кавычки что-то ничего не дали, я сам всегла такими кавычками пишу, печально, от них никакого прироста неощущаеться
 

Nelius

кипарис во дворе
Автор оригинала: Кощей
Nelius
Одно и тоже, кавычки что-то ничего не дали, я сам всегла такими кавычками пишу, печально, от них никакого прироста неощущаеться
Ощущается на самом деле, если использовать их часто и не выносить их них переменные.
При таком коротком коде мож и видно не будет, хотя я бы использовал microtime();, а если код объемный то прирост есть.
 

Кощей

if(!$needle) die("ooh");
Хотел избавить базу от каких-то нагрузок насколько возможно перевести что возможно в файлы, но вижу что почти в два раза разница в скорости доступа, всетаки в базе лучше хранить кешик.

-~{}~ 06.11.07 20:14:

Nelius
я вот так защитываю:
PHP:
list($msec,$sec) = explode(chr(32),microtime());
$headtime = $sec + $msec;

//код код код

list($msec,$sec) = explode(chr(32),microtime());
echo '<center>Генерация страницы '.round(($sec+$msec)-$headtime,4).' сек.';
 

Nelius

кипарис во дворе
Если вопрос в кэшировании страниц, и если контент на сайте изменяется не часто, то можно посмотреть в сторону генерации готовых html файлов, а при внесении изменений через админку просто заново их генерировать.

-~{}~ 06.11.07 20:19:

PHP:
$stm = explode(' ',microtime());
$stm = $stm[1] + $stm[0];

// ... тут код

$etm = explode(' ',microtime());
$etm = $etm[1] + $etm[0];
print $etm = $etm - $stm;
Хотя я думаю особой разницы нет...
 

Кощей

if(!$needle) die("ooh");
Nelius
Контент частично статичный частично очень не статичный =)
К базе запрос полюбому будет и какаята выборка тоже, такчто думаю всеже в базу актуальней. Конечно еслибы можно всю страницу закешить то можно и в файл, коннект к базе мне кажеться тоже время тянет хотя запросы плюс это время на подключение оказались на тесте всеравно быстрее.
 

Nelius

кипарис во дворе
Автор оригинала: Кощей
Nelius
Контент частично статичный частично очень не статичный =)
К базе запрос полюбому будет и какаята выборка тоже, такчто думаю всеже в базу актуальней. Конечно еслибы можно всю страницу закешить то можно и в файл, коннект к базе мне кажеться тоже время тянет.
Так я про всю страницу вам и говорил, по другому смысла просто нету.
 

Кощей

if(!$needle) die("ooh");
Так что выходит еффективней записать xml ленту в базу и при запросе страницы просто вынимать её готовую и выдавать в браузер чем хранить реально на диске...
 

Nelius

кипарис во дворе
Лично я храню xml данные в БД, но сам пока не уверен в правильности такой реализации, но вроде работает неплохо,
генерация главной странички на ноутбуке занимает не более 0.03 секунд
 

Nelius

кипарис во дворе
Автор оригинала: Апокалипсис
имхо много
без нагрузки
Возможно, но вы же не знаете воможности моей CMS.
Поддерживает шаблоны, полностью мультиязычна, неограниченное количество динамических менюшек навигации, личные конфиги для пользователей, счетчик посещений, логи ошибок, доступа, действий пользователей, все в UTF-8 ну и много чего еще включая AJAX приблуды всякие... я думаю 0.03 секунды это не очень много при такх возможностях

-~{}~ 06.11.07 20:36:

Ну в дополнение и сессии хранятся в БД с локингом, это добавляет нагрузки прилично...
 
Сверху