Ускоряют ли таблицы сопоставления SQL запросы? Как вы их используете?

Я хотел бы знать, какова цель таблицы сопоставления и как она ускоряет запросы MySQL. Я работаю над ускорением медленного MySQL-запроса, и я столкнулся с этим вопросом о стековом потоке. Комментарии предполагают, что таблицы сопоставления не только ускоряют запросы, объединяющие обе таблицы, но и являются правильным способом структурирования базы данных.

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

2 ответа

Решение

Я хотел бы знать, какова цель таблицы сопоставления

Таблица сопоставления используется для представления отношения "многие ко многим". Например, в приведенном вами вопросе есть две сущности - книги и студенты. Студент может одолжить много книг; книга может быть заимствована многими студентами.

Стандартный способ представить это в реляционной модели - это "таблица сопоставления", в которой будут содержаться внешние ключи для книг и студентов, а также любая информация, относящаяся, например, к дате начала и окончания кредита.

Таблица сопоставления действительно является "правильным" способом для моделирования множества отношений.

и как это ускоряет запросы MySQL

В большинстве случаев этого не происходит, хотя обычно он работает лучше, чем другие способы представления отношений "многие ко многим". Если производительность вас беспокоит, ответ @Namphibian на деньги в качестве отправной точки.

Первое, на что вам нужно ответить, - почему запрос выполняется так медленно. Если у вас есть следующий запрос

SELECT * FROM Customer WHERE CustomerID= 1

Это работает медленно. Итак, как вы определяете, почему он работает медленно? Введите следующее:

EXPLAIN ALL SELECT * FROM Customer WHERE CustomerID=1

Это вернет результирующий набор, указывающий, как MySQL получает данные. Здесь вы можете найти подсказки об отсутствующих индексах и т. Д., Которые могут помочь оптимизировать ваши запросы.

Смотрите следующие ссылки для получения дополнительных ответов:

http://dev.mysql.com/doc/refman/5.0/en/explain.html

Оптимизация индекса таблицы MySQL

Даже если вы использовали таблицу сопоставления, а ваши запросы и индексация не оптимальны, у вас будет ужасная производительность.

Другие вопросы по тегам