2014-02-18 4 views
1

это мой вид базы данных Mysql.Как уменьшить время выполнения запроса MySql

Create View viewschools As Select 
    school.*, 
    conference.conference_name, 
    conference.division_id, 
    division.division_level, 
    facility.facility_address, 
    GROUP_CONCAT(DISTINCT facility.facility_name) AS Athletic_Venue 
FROM school 
    INNER JOIN conference 
    ON school.conference_id = conference.conference_id 
    INNER JOIN division 
    ON conference.division_id = division.division_id 
    LEFT OUTER JOIN schoolfacilitysport 
    ON school.school_id = schoolfacilitysport.school_id 
    LEFT OUTER JOIN facilitytosports 
    ON schoolfacilitysport.facilitytosports_id = facilitytosports.facilitytosports_id 
    LEFT OUTER JOIN facility 
    ON facilitytosports.facility_id = facility.facility_id 
    group by school.school_id 

в таблицах базы данных 20 тысяч записей сейчас время выполнения запроса составляет 13 секунд, после чего я открываю это представление в базе данных. Увеличение времени выполнения запроса при поиске любого имени школы с похожим оператором. Пожалуйста, предложите любую вещь, чтобы уменьшить время выполнения запроса.

+1

Простое правило: Любое поле, используемое в операции 'where' или' join', должно иметь индекс на нем. –

ответ

1

Сначала создайте индексы на конференции_id, division_id, school_id, facilitytosports_id, object_id, если вы еще не сделали этого.
См. create index

+0

Пожалуйста, предложите любую ссылку –

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