Member 13334743 Ответов: 1

Как быстрее выполнить мой запрос mysql .


Привет, ребята, есть ли какой-нибудь способ, где я могу выполнить свой запрос быстрее ? вот оно мы:

Что я уже пробовал:

выберите граф(отчетливый(str_to_date(dwardate,'%м/%Д/%Г'))) как tdays ,staffhouse,mealallowance,transporallowance " и усилитель; _
", staffhouseto, mealto, transpoto, transpoeffective от сотрудников " & _
"внутреннее соединение EAC на ЕАС.employeesid = человек.employeesid " и усилитель; _
"внутреннее соединение tbldwardetails на tbldwardetails.Employeesid = человек.employeesID " и усилитель; _
"Внутреннее соединение employeesAttendance на employeesAttendance.Employeesid = человек.employeesID " и усилитель; _
"Где LOGTIMEIN &ЛТ;&ГТ;" и LOGTIMEOUT&ЛТ;&ГТ; " и отметил, &ЛТ;&ГТ; 'смещение' и str_to_date(dwardate,'%м/%д/%г') &ГТ;= '" &амп; dafrom &ампер; "' и str_to_date(dwardate,'%м/%д/%г') &ЛТ;= '" &ампер; на &ампер; "' и сотрудников.employeesid = "&амп; empids &ампер; " группа по dwardate"

Graeme_Grant

У тебя много связей ... Вы просмотрели план запроса? Есть ли у вас индексы для полей/столбцов, к которым вы присоединяетесь?

1 Ответов

Рейтинг:
2

Bernhard Hiller

Избавьтесь от них str_to_date(dwardate,'%m/%d/%Y'), вместо этого используйте правильный тип datetime и используйте параметризованный запрос.
Функции в WHERE предложения обеспечивают принудительное сканирование таблиц (вместо поиска индексов), а параметризованные запросы помогают преодолеть проблемы форматирования и инъекции SQL.