@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
Навскидку - третий запрос дублирует четвёртый и десятый. Да и вообще общие запросы на выбор всего присутствуют перед выбором конкретики. Индексы тоже хорошо бы проверить.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы