|
|
|
| Люди, помогите избавиться от боязни сделать лишний запрос к базе данных, почему то у меня в мозгу засела мысль, что запрос к серверу баз данных это сильнейший тормоз и я постоянно сижу и ломаю голову как бы обойтись меньши кол-овм запросов.
Скользко запросов максимально (вернее не желательно использовать больше) возможно при генерации страницы.
Каково максимально допустимое время выполнения скрипта (не из расчета настроек php а из usability ) | |
|
|
|
|
|
|
|
для: PantiL
(25.10.2006 в 15:57)
| | Боязнь эта обходится примерно по следующей схеме: чтобы вы не делали, уменьшить объём работы с базой данных вам не удастся, более того, специальная оптимизация скорее всего увеличит объём работ. Дело в том, что снижая количество запросов, вы усложняете сам запрос, делая его либо многотабличным, либо вложенным. При большом объёме данных - это даёт нагрузку ещё большую, чем выполнение запросов в цикле.
PS От такой боязни необходимо отделываться обязательно, так как это приводит, как правило, к преждевременной оптимизации - вы тратите время, усилия на оптимизацию кода, а при глубоком рассмотрении оказывается, что оптимизируемый участок никогда не лимитировал код. У баз данных имеется множество средств увеличения производительности, в первую очередь индексация, если проблемы возникнут - инструментов для решения у вас будет достаточно. | |
|
|
|
|
|
|
|
для: cheops
(25.10.2006 в 16:03)
| | В каждом конкретном случае нужно смотреть, чаще всего один грамотно написанный запрос лучше чем много мелких - из-за затрат на межсетевое соединение с БД.
Мелкие запросы хороши когда используется система кэширования данных. | |
|
|
|
|
|
|
|
для: bratik
(26.10.2006 в 19:00)
| | >В каждом конкретном случае нужно смотреть,
Согласен
>чаще всего один грамотно написанный запрос лучше чем много мелких
На счёт того, что такая ситуация возникает часто не согласен | |
|
|
|
|
|
|
|
для: PantiL
(25.10.2006 в 15:57)
| | на каком-то сайте видел: 14 запросов к БД - генерация страницы - доли секунды, точно не помню, но менее половины (n < 0, 5 сек) это точно | |
|
|
|
|
|
|
|
для: Lelik
(25.10.2006 в 16:05)
| | даже страшно спрашивать сколько у вас:) | |
|
|
|
|
|
|
|
для: Loki
(25.10.2006 в 16:26)
| | это вы у меня спрашиваете? не более 10 на странице ;) а вообще я за РНР уже более месяца не сидел | |
|
|
|
|
|
|
|
для: Lelik
(25.10.2006 в 17:18)
| | Не люблю хвастатся, но у нас главная otvali.ru генерируется за 0.09225 с и 4 запроса в БД:) Кеширования нету =) | |
|
|
|
|
|
|
|
для: Lelik
(25.10.2006 в 16:05)
| | на каком-то сайте видел: 14 запросов к БД - генерация страницы - доли секунды, точно не помню, но менее половины (n < 0, 5 сек) это точно
Вы считаете это быстро? :)
А mysql_query()-фобию надо исправлять иногда и скриптами на файлах...Я не любитель этого дела, но иногда просто без этого не обойтись...Ведь все данные в таблице в одном файле, а если, скажем, у вас какой-то крутой рейтинг и очень посещаемый сайт, то ваша база полетит...
Тут придется для каждого аккаунта делать свой файл - ведь обращение к маленькому файлу будет намного "легче"...:) | |
|
|
|
|
|
|
|
для: Unkind™
(27.10.2006 в 00:42)
| | >Вы считаете это быстро? :)
Да, так как время загрузки страницы, как правило, выше и время генерации не является лимитирующим.
>Ведь все данные в таблице в одном файле, а если, скажем, у вас какой-то крутой рейтинг и
>очень посещаемый сайт, то ваша база полетит...
Точно также полетят и файлы, написать, код на PHP для работы с файлами быстрее, чем код на C вряд ли удасться... По скорости обращения данных и надёжности база данных всегда будет делать PHP-скрипты, работающие с файлами. СУБД кэширует часть данных (т.е. хранит в оперативной памяти), разработать быстро файловый движок более быстрый и надёжный чем СУБД, практически не реально. | |
|
|
|
|
|
|
|
для: cheops
(27.10.2006 в 01:00)
| | Точно также полетят и файлы, написать, код на PHP для работы с файлами быстрее, чем код на C вряд ли удасться... По скорости обращения данных и надёжности база данных всегда будет делать PHP-скрипты, работающие с файлами. СУБД кэширует часть данных (т.е. хранит в оперативной памяти), разработать быстро файловый движок более быстрый и надёжный чем СУБД, практически не реально.
:) Я же говорю про отдельный файл для каждого аккаунта...Например:
<?php
include("headers");
$id = intval($_GET['id']);
$fd = fopen("/home/site/top.site.ru/www/accounts/".$id."/".$id.".dat", "r");
$data = fgets($fd);
fclose($fd);
//И т.д.
include("footer");
?>
|
А если сделать это на MySQL, когда в базе таких аккаунтов тысячи и каждую секунду несколько десятков обращений одновременно? Ведь, повторюсь, там все аккаунты будут в одной таблице, в одном файле...
По крайней мере для меня MySQL - это потрясная вещь, которую надо "экономить" для таких моментов, когда нужна быстрая и удобная выборка из базы...Поиск, короче...
Например, я бы даже не стал браться делать хороший чат или форум на файлах...
А в остальных случаях лучше на файлах постараться...
Между прочим, я заметил, что DDoS легче на скрипты с использованием MySQL делать...=( | |
|
|
|
|
|
|
|
для: Unkind™
(27.10.2006 в 01:52)
| | >:) Я же говорю про отдельный файл для каждого аккаунта...
В MySQL тоже можно так поступать - создавая отдельную таблицу под каждого из пользователей, ведь таблица - это тот же файл, только бинарный.
>Между прочим, я заметил, что DDoS легче на скрипты с использованием MySQL делать...=(
Есть такое дело, за удобства, которые предоставляет MySQL следует расплачиваться процессором и памятью - это бич всех баз данных. | |
|
|
|
|
|
|
|
для: cheops
(27.10.2006 в 13:48)
| | В MySQL тоже можно так поступать - создавая отдельную таблицу под каждого из пользователей, ведь таблица - это тот же файл, только бинарный.
А потом в phpMyAdmin с тысячами таблиц работать...:)) | |
|
|
|
|
|
|
|
для: Unkind™
(27.10.2006 в 15:04)
| | Точно также как через FTP с тысячами файлов :))) | |
|
|
|
|
|
|
|
для: cheops
(27.10.2006 в 15:05)
| | Не...FTP все в одной папочке будет, туда и можно не лезть, да и поиск удобнее, если уж надо... | |
|
|
|