Вот моя проблема, я выбираю и делаю несколько объединений, чтобы получить правильный элемент.Ускорить запрос MySQL с несколькими объединениями
Кто-нибудь знает, как я могу ускорить это? Это займет около 19 секунд?
Вот запрос.
SELECT
t1.id AS HostingID,
t5.date_id AS DateRelid
FROM
tblhosting AS t1
INNER JOIN tblcustomfieldsvalues AS t2 ON t1.id = t2.relid
INNER JOIN tblcustomfields AS t3 ON t2.fieldid = t3.id
INNER JOIN tbl_course AS t4 ON t1.packageid = t4.course_pid
INNER JOIN tbl_dates AS t5 ON t4.course_title = t5.date_coursetitle
WHERE
t3.fieldname LIKE "%Course Date%" AND
t1.id = "$hostingid" AND
t1.userid = "$userid" AND
t5.date_coursedisplay = t2.value AND
t5.date_courselocation = t4.course_location
ORDER BY t5.date_id DESC
LIMIT 0 , 1
Я не самый большой с MySQL, так что любая помощь будет оценен по достоинству!
Заранее благодарен!
ОБЪЯСНИТЬ Of My SQL:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 const PRIMARY,serviceid,userid,productid PRIMARY 4 const 1 Using temporary; Using filesort
1 SIMPLE t5 ALL NULL NULL NULL NULL 20744
1 SIMPLE t3 ALL PRIMARY NULL NULL NULL 4101 Using where; Using join buffer
1 SIMPLE t2 ref fieldid_relid fieldid_relid 8 nextstep_next.t3.id,const 1 Using where
1 SIMPLE t4 ALL NULL NULL NULL NULL 664 Using where; Using join buffer
Не могли бы вы предоставить дополнительную информацию: структура ваших таблиц, приблизительное количество строк в каждом? – Loufylouf
't1 - ID \t \t идентификатор OrderID \t \t PackageID сервер \t regdate - 16000 rows' ' t2 - fieldid relid значение - 80000 Rows' 't3 - \t \t идентификатор типа \t \t relid имя_поля \t \t FieldType Описание \t \t fieldoptions RegExpr \t \t adminonly необходимые \t \t showorder showinvoice \t sortorde - 5000 rows' 't4 - Полный текст \t \t course_id COURSE_TITLE \t Кур se_location \t \t course_pid course_venue \t course_note - 500 rows' 't5 - Полные тексты \t \t date_id date_select \t \t date_courselocation date_coursetitle \t date_coursedisplay - 21000 rows' @Loufylouf надеюсь, что это помогает, его база данных WHMCS с пользовательскими таблицами –
читаемый формат будет путь лучше, чем это. Как правильно отредактированный 'CREATE TABLE', это даст нам разные типы ваших столбцов, а также способ быстро создать ваши таблицы для тестирования. И такая информация действительно важна, поэтому было бы лучше добавить ее к вашему вопросу, чем здесь, в комментариях. – Loufylouf