2013-02-12 4 views
0

У меня есть сайт, который значительно медленнее загружает страницы.Медленные страницы сайта - SQL-запросы

Мне сказали посмотреть мой журнал mysqlslowqueries в папке TMP.

Я вижу много запросов, перечисленных здесь ежедневно. EG:

http://www.ticketyoda.co.uk/concerts/bon-jovi-tickets/bon-jovi-tickets-stadium-of-light-sunderland-2/3550

# Tue Feb 12 08:02:41 2013 
# Query_time: 53.289597 Lock_time: 0.001163 Rows_sent: 3 Rows_examined: 73556368 
use ticketyoda; 
SET timestamp=1360681361; 
SELECT e.merchant, e.price, e.url, m.merchant_logo, m.merchant_name, e.eventname, m.merchant_rating 
FROM wp_events e 
INNER JOIN ########### 
ON ############# 
AND e.uploaddate = (SELECT MAX(uploaddate) FROM #########) 
AND e.eventname ='### ####' 
AND e.date = '######' 
ORDER BY price ASC 

бы определенно оценить помощь от кого-либо, я пробовал другие плагины и т.д., но это возможно сделать с БД.

Благодаря

+1

База данных читает 73556368, чтобы найти 3 записи, очевидно, что это проблема, проверьте вашу схему, вам, вероятно, потребуется индексировать некоторые поля. – pedromarce

ответ

1

Я пошарил на веб-сайте, и это почти unusably медленно.

Он также утверждает, что работает от чего-то, называемого «ticketreview» - это тот пакет программного обеспечения, который вы купили? Если это так, возьмите это для поставщика, потому что сценарий установки почти наверняка либо оставил целую кучу фиктивных данных в вашей базе данных (у вас относительно небольшое количество художников/городов и 73 миллиона записей), либо он забыл установить индексы в базе данных, или что-то еще пошло не так, что делает его непригодным для использования.

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

Затем подружитесь с EXPLAIN. Он расскажет вам, где можно оптимизировать запрос - кажется, что есть некоторые отсутствующие индексы.

+0

Я согласен и думаю, что проблема в том, что индексов нет на таблицах. Запрос состоит в том, чтобы просто взять список цен для каждого сообщения (события), но не уверен в 73 миллионах записей. База данных содержит 5000 уникальных событий и 10 000 цен, поэтому не уверен в этом. Спасибо, что посмотрели, я постараюсь и пойду на вопросы. Просто интересно, как я нахожу, где 73 миллиона записей? –

+0

запустил этот же запрос через EXPLAIN - если у вас не так много данных, это может быть декартово-соединение где-то - сложно сказать, потому что вы хэшировали соединение и не выставляли схему, но это «m», Стол? –

+0

Да, m является соединением. Я могу отправить вам полный запрос. Точный запрос, выполняемый в PhPMyadmin, не займет много времени, чтобы получить результаты. INNER JOIN wp_merchants m ON e.merchant = m.merchant_name –

Смежные вопросы