@kamtm

Есть ли ошибки в запросах к базе данных mysql?

Добрый день!

Программист сдал проект и сейчас я вижу такую информацию:

время генераций страницы 52.082 секунд
запросов в БД 13
SET CHARACTER SET utf8
SELECT * FROM users WHERE id = '1' LIMIT 1
SELECT * FROM vacancy WHERE id >0
SELECT * FROM vacancy WHERE id >0 ORDER BY adddate DESC LIMIT 0, 10
SELECT * FROM users WHERE id = '7'
SELECT id, title, logotype FROM company WHERE id = '2'
SELECT * FROM users WHERE id = '2'
SELECT id, title, logotype FROM company WHERE id = '1'
SELECT DISTINCT(city) FROM vacancy WHERE id > 0
SELECT id FROM vacancy
SELECT id FROM resume
SELECT id FROM resume WHERE user = 1
SELECT f.*, r.*, r.id as id, f.user as user FROM favorite f INNER JOIN vacancy r ON r.id = f.target_id WHERE f.user = 1 AND f.target LIKE 'vacancy'


На данной странице идет вывод объявлений пользователей. То есть первый select это информация о залогиненном пользователе.

Судя по времени что-то не так. Или хостинг просто тупит?

Поправлено. Индексов нет.

Сейчас всего 2 объявления выведено. Похоже, если объявлений будет 10, то это еще 16 запросов добавится:) Это нормально или срочно менять все? Сейчас нагрузка порядка 200 хостов в день.
  • Вопрос задан
  • 2312 просмотров
Пригласить эксперта
Ответы на вопрос 3
@Calc
А индексы у базы данных есть?
на id, adddate, target_id, user и target?
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Тут надо знать логику приложения, но некоторые запросы, например два подряд идущих к vacancy, настораживают. Два последовательных запроса к users и company тоже скорее всего можно заменить на один с JOIN.
Ответ написан
Комментировать
@lubezniy
Навскидку - третий запрос дублирует четвёртый и десятый. Да и вообще общие запросы на выбор всего присутствуют перед выбором конкретики. Индексы тоже хорошо бы проверить.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы