Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Работы базы данных - оптимизация
 
 автор: jaroslav   (19.06.2007 в 22:34)   письмо автору
 
 

Доброго времени суток!

Подскажите, пожалуйста, как при помощи phpMyAdmin можно протестировать время работы запросов к БД? Что такое ОПТИМИЗАЦИЯ таблиц в базе данных?
Идет большая нагрузка на сервер (хостеры начинают жаловаться).
Как можно быстро решить эту проблему?

С уважением,
Воробьев Ярослав.

   
 
 автор: Trianon   (19.06.2007 в 23:43)   письмо автору
 
   для: jaroslav   (19.06.2007 в 22:34)
 

Начать стоит с простого.
Убедиться, что количество запросов к БД, требуемых для формирования одной страницы ограничено сверху. То есть не зависит от количества данных в самих таблицах.

Дальше сложнее.
По статистике львиная доля обращений (свыше 90%) приходится на очень малое количество данных -строк и столбцов (до 10%). По возможности такие наборы данных надо пытаться отделять в отдельные таблицы. Это тоже увеличивает скорость и снижает нагрузку.

И наконец, нужно пытаться строить таблицы и запросы так,
чтобы сами запросы не порождали прямой проход по данным, а опирались на индексы.
Здесь может помочь оператор EXPLAIN.

   
 
 автор: Jaroslav   (20.06.2007 в 00:13)   письмо автору
 
   для: Trianon   (19.06.2007 в 23:43)
 

Спасибо.

   
 
 автор: Jaroslav   (20.06.2007 в 03:23)   письмо автору
 
   для: Trianon   (19.06.2007 в 23:43)
 

Подскажите, пожалуйста, а частое открытие и закрытие базы данных влияет на нагрузку сервера? Или лучше один раз на стр. ее открыть, и взять всю необходимую информацию.

   
 
 автор: Trianon   (20.06.2007 в 08:32)   письмо автору
 
   для: Jaroslav   (20.06.2007 в 03:23)
 

Открывать БД имеет смысл один раз на http-запрос. Функцией mysql_connect()
О закрытии вообще не думать. Само закроется.

   
 
 автор: cheops   (20.06.2007 в 10:26)   письмо автору
 
   для: Trianon   (20.06.2007 в 08:32)
 

>О закрытии вообще не думать. Само закроется.
Правда, если скрипт долго выполняется (уже после того, как отработал с MySQL), ждёт данных по сети или у клиента медленный канал - лучше закрыть, чтобы процесс не висел. Однако, как правило, скрипты отрабатывают быстро и можно действительно не заботиться о закрытии соединения.

   
 
 автор: Trianon   (20.06.2007 в 10:40)   письмо автору
 
   для: cheops   (20.06.2007 в 10:26)
 

>О закрытии вообще не думать. Само закроется.
Правда, если скрипт долго выполняется (уже после того, как отработал с MySQL),
>ждёт данных по сети или у клиента медленный канал - лучше закрыть, чтобы процесс не висел.
Конечно, если скрипт написан так, что в какой-то точке исполнения ясно, что дальнейших запросов не последует - соединение лучше закрыть.

А при закрытии соединения с БД - дескрипторы результатов буферизирующих запросов сохраняют актуальность? С небуферизирующими - совершенно точно не выйдет.

   
 
 автор: Jaroslav   (21.06.2007 в 08:09)   письмо автору
 
   для: Trianon   (19.06.2007 в 23:43)
 

Подскажите, а где можно по почитать об использовании оператора EXPLAIN?

   
 
 автор: Trianon   (21.06.2007 в 09:20)   письмо автору
 
   для: Jaroslav   (21.06.2007 в 08:09)
 

http://www.pomorsu.ru/~olmer/docs/mysql/manual.ru_MySQL_Optimisation.html#explain

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования