Первый
$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
Я так думаю что первый быстрее, но програмеры мне вставили второй…
SQL не умеет считать количество файлов, SQL — это язык запросов к базе данных.Есть два способа получить количество файлов, через файлы и через SQL.
ваши варианты мягко говоря не равнозначные
Первый находит количество опубликованных записей в базе данных, не находящихся на модерации. Второй перебирает файлы в директории. В чем связь то? — почему вы вообще думаете, что они вернут одинаковое значение?
Скорей вопрос в том что быстрее, считать файлы или считать итемы из базы? При условии что и тех и тех одинаковое число. Допустим считать 10 файлов, наверно быстрее что считать 10 итемов (учитывая время на коннект к базе, запрос, получение ответа и т.д.), а вот считать 10 000 файлов, уже наверно медленней, чем 10 000 итемов.
ну и чем больше файлов будет, тем больше бд будет выигрывать, при таком количестве котором вы указали