|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.02.2011, 22:47 | #1 |
Регистрация: 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 работают быстро на любых хостингах и отправили оптимизировать |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
П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 |