Форум → Программирование → PHP для идиотов → MySQL
MySQL
Страницы: ← Следующая страница →
-
Заметил, что некоторые крупные системы управления сайтом используют mysql + файлы (например «4site CMS»), а некоторые используют только файлы («TWL»). В каких случаях лучше использовать первое, а в каких второе?
В «4site CMS» файлы используются для хранения статических страниц, при этом все страницы не в одном файле, а каждая в своем. Для динамических (новостей) используется MySQL.
В «TWL» вообще только файлы… -
22 июля 2008 г. 20:22, спустя 10 минут 24 секунды
Разработчики этой TWL видимо стремились к максимальной совместимости с любой площадкой. Не знаком с 4site CMS, но возможно в файлах хранится просто кэш страниц.
Если у тебя есть возможность приобрести хостинг с СУБД используй её, потому что это просто, быстро и удобно. -
22 июля 2008 г. 20:35, спустя 13 минут 32 секунды
Что быстрее обработается?<?php
$array = file_get_contents("$id.txt");
$array = unserialize($array);
echo "$array['title']<br>\n";
echo "$array['content']<br>\n";
?>
или$array = mysql_query("SELECT * FROM pages WHERE id = '$id'");
$array = mysql_fetch_array($array);
echo "$array['title']<br>\n";
echo "$array['content']<br>\n"; -
22 июля 2008 г. 21:10, спустя 34 минуты 21 секунду
Как вообще посчитать время выполнения скрипта?
Делал так$start = microtime();
$start = str_replace(' ', '', $start);
//тут код
$end = microtime();
$end = str_replace(' ', '', $end);
echo $end - $start;
Время выполнения — 1.4E-5
Хотя не может такой скрипт на моей машине 1 секунду выполнятся xD -
22 июля 2008 г. 22:19, спустя 1 час 9 минут 10 секунд
что бы посчитать время: microtime(1); (т.е. с параметром 1 или true). Только в данном случае считать нечего. -
22 июля 2008 г. 22:35, спустя 16 минут 32 секунды
Ну вот и результаты моего тестирования
MySQL:$timer->start();
for ($i = 0; $i < 100; $i++)
{
$array = mysql_query("SELECT * FROM pages WHERE id = '$i'");
$array = mysql_fetch_array($array);
echo "<br>$array[title]<br>\n";
echo "$array[content]<hr>\n";
}
echo '<br>' . $timer->stop(); //0.01 сек.
Файлы:$timer->start();
for ($i = 0; $i < 100; $i++)
{
$array = file_get_contents("db/$i.txt");
$array = unserialize($array);
echo "<br>$array[title]<br>\n";
echo "$array[content]<hr>\n";
}
echo '<br>' . $timer->stop(); //0.1 сек.
Получается, что при равных условиях, MySQL работает в 10 раз быстрее файлов! -
-
22 июля 2008 г. 23:41, спустя 44 минуты 53 секунды
Недаром говорят, что есть ложь, наглая ложь и бенчмарки. Фенька в том, что в реальной жизни БД обрабатывает отнюдь не один единственный запрос. Таким образом ты попадаешь в очередь, это раз. Скорость работы БД зависит от размера таблицы, и когда она будет достаточно большой, то результат будет не таким оптимистичным, это два.
Получается, что при равных условиях, MySQL работает в 10 раз быстрее файлов! -
23 июля 2008 г. 8:24, спустя 8 часов 43 минуты 20 секунд
+ещё unserialize и echo едять 9 из этих 10 раз -
23 июля 2008 г. 10:55, спустя 2 часа 31 минуту 7 секунд
Получается, что при равных условиях, MySQL работает в 10 раз быстрее файлов!
средняя температура по больнице 36,6! -
23 июля 2008 г. 12:39, спустя 1 час 44 минуты 4 секунды
$timer->start();
for ($i = 0; $i < 100; $i++)
{
$array = mysql_query("SELECT * FROM pages WHERE id = '$i'");
$array = mysql_fetch_array($array);
echo "
$array[title]
\n";
echo "$array[content]<hr>\n";
}
echo '
' . $timer->stop(); //0.01 сек.
Ужас! Нельзя использовать запросы в цикле. Какое уж тут быстродействие. -
23 июля 2008 г. 12:51, спустя 12 минут 15 секунд
sap, для замера можно
потом время поделить на количество циклов и будет среднее время запроса -
23 июля 2008 г. 13:48, спустя 56 минут 59 секунд
Ужас! Нельзя использовать запросы в цикле. Какое уж тут быстродействие.
А как еще можно сделать? -
-
23 июля 2008 г. 19:15, спустя 5 часов 25 минут 3 секунды
Примерно так:$result = mysql_query ('SELECT `title`, `content` FROM `pages` ORDER BY `id` LIMIT 100');
while ($row = mysql_fetch_array ($result))
echo $row['title']."\n".$row['content']."<hr>\n";
Будет значительно быстрее.
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!