Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2011, 22:47   #1
kikikiki
 
Регистрация: 07.02.2011
Сообщений: 3
По умолчанию ПOМОГИТЕ профи, оптимизация MySQL, есть ли выход???

Существует сайт на котором есть
-чаты
-гостевая
и т.д.
Во всех этих модулях используется база данных MySQL
Везде запросы одинарные т.е. сверка с одной - двумя таблицами, и все работает быстро

Но есть еще один модуль который производит сверку сразу по нескольким таблицам.
Кода под рукой нет новыглядит это примерно так

выбираю данные из таблицы 1

если есть найденные то

ище данный по таблице 2 в интервале заданного времени времени

т.е. в одном запрове идет проверка сразу по нескольким таблицам

причем у таблиц нет индексов

ну например

таблица 1
url,ip,agent,datetime

таблица 2
url,ip,agent,datetime

в данном случе будет примерно такой запрос

SELECT * FROM таблица 1 WHERE таблица 1.url = таблица 2.url AND и т.д.

а вот например друго запрос

SELECT * FROM таблица 1 WHERE url = (SELECT url FROM таблица 2 WHERE таблица 1.ip = таблица 2.ip AND таблица 1.agent = таблица 2.agent AND datetime > сегодняшняя дата - 5 дней)

или например вот так

SELECT * FROM таблица 1 WHERE url = (SELECT url FROM таблица 2 WHERE таблица 1.ip = таблица 2.ip AND таблица 1.agent = таблица 2.agent AND datetime > сегодняшняя дата - 5 дней) AND datetime > сегодняшняя дата - 5 дней AND url <> моей ссылки

короче таких запросов там очень много
в итоге при загрузки страницы сайта сайт виснет на 3 мин!!!
и никто не может получить к нему доступ пока работа с базой данных не будет закончена

т.е. если все это перевести в циклы то каждое значение из таблицы 1 сверяется со всеми значениями с таблицой 2 и т.д.
а значений в таблице несколько тысяч!!!
т.е. это цикл в цикле

вопрос таков как мне подсчитать время выполнения каждого запроса

чтото типа такого

SELECT * FROM таблица 1 WHERE таблица 1.url = таблица 2.url AND и т.д.
---вывожу сколько времени шел запрос

SELECT * FROM таблица 1 WHERE url = (SELECT url FROM таблица 2 WHERE таблица 1.ip = таблица 2.ip AND таблица 1.agent = таблица 2.agent AND datetime > сегодняшняя дата - 5 дней)
---вывожу сколько времени шел запрос

и еще для чего нужны индексы? и как они могут тут чемто помочь?

как такие запросы оптимизировать?

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

на хостинге мне сказали что покупка более мощьного сервера ни к чему не приведет и дали понять что все CMS работают быстро на любых хостингах
и отправили оптимизировать
kikikiki вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пoмогите найти картинку Altera Свободное общение 19 19.11.2011 01:59
есть адреси в mysql нужно поиска с AJAX for mysql orter PHP 1 24.09.2010 10:24
Пoмогите с маршрутизацией bookkc Помощь студентам 2 21.07.2010 11:29
Оптимизация баз данных (XML + MySQL) lord22 Фриланс 1 17.06.2010 18:11
Нужна ф-ция GetModuleBase или пoмогите переписать ее с c++ на Delphi. kalexi Win Api 0 03.02.2010 00:22