Вопрос по скорости вполнения кода

 
Посетитель
no avatar
Медаль
Сообщений: 109
Есть два способа получить количество файлов, через файлы и через SQL.

Первый

$inCore = cmsCore::getInstance();
$inDB = cmsDatabase::getInstance();
$sql = "SELECT count(i.pubdate) as pubdate FROM cms_uc_items i
WHERE i.published = 1 AND i.on_moderate = 0 ";
$result = $inDB->query($sql);
if ($inDB->num_rows($result)){
$one = $inDB->fetch_assoc($result);
echo($one['pubdate']);
}

Второй

if ($handle = opendir(PATH.'/files')) {
while (false !== ($file = readdir($handle))) { $count++; }
closedir($handle);
}
echo($count-2);

Считаем что файлов 30 000.
Вопрос: какой из способов менее ресурсоемкий (тормознутый)?
Если кто-то скажет хоть примерно во сколько раз один способ быстрее другого, будет вообще замечательно.


PS
Я так думаю что первый быстрее, но програмеры мне вставили второй...
www.cartica.ru - автомобильное издание. Последние новости авторынка, авто-обзоры, тест-драйвы, самая актуальная информация!
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 555
Есть два способа получить количество файлов, через файлы и через SQL.
SQL не умеет считать количество файлов, SQL - это язык запросов к базе данных.

ваши варианты мягко говоря не равнозначные

Первый находит количество опубликованных записей в базе данных, не находящихся на модерации. Второй перебирает файлы в директории. В чем связь то? - почему вы вообще думаете, что они вернут одинаковое значение?
оптимизирую помаленьку
Реклама
cms
Посетитель
no avatar
Медаль
Сообщений: 109
Согласен что вернут не одно и тоже, просто вставил код как есть.
Скорей вопрос в том что быстрее, считать файлы или считать итемы из базы? При условии что и тех и тех одинаковое число. Допустим считать 10 файлов, наверно быстрее что считать 10 итемов (учитывая время на коннект к базе, запрос, получение ответа и т.д.), а вот считать 10 000 файлов, уже наверно медленней, чем 10 000 итемов.
www.cartica.ru - автомобильное издание. Последние новости авторынка, авто-обзоры, тест-драйвы, самая актуальная информация!
Посетитель
small user social cms
Медаль
Сообщений: 150
зависит от типа таблицы myisam или innodb , зависит от того находится ли таблица уже в памяти, вообщем много факторов, но по свой сути из бд будет быстрее выбрать чем из файловой системы

ну и чем больше файлов будет, тем больше бд будет выигрывать, при таком количестве котором вы указали
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.