2015-09-03 5 views
0

Прошу вас, пожалуйста, со мной ... Я попытаюсь объяснить это наилучшим образом.Таблица индексов базы данных MySQL INDEX

У меня есть таблица на месте с менее чем 50 000 записей, которая отслеживает движение различных партий.

Каждой отправке присваивается номер для отслеживания.

Каждая партия будет проходить через последовательность «рабочих процессов», когда она достигнет определенной точки. Есть чуть более 10 рабочих процессов, которые могут пройти одна партия. Некоторые рабочие процессы могут быть пропущены в зависимости от ситуации, но каждая партия будет иметь начальный рабочий процесс и конечный рабочий процесс.

Таблица настроена на отслеживание каждой партии, когда она перемещается по различным рабочим процессам, тем самым сохраняя историю рабочих процессов. С учетом сказанного, таблица сохранит более 10 записей одной и той же партии, поскольку она перемещается по каждому рабочему процессу.

Они могут выглядеть как дубликаты, но они не из-за того, что рабочий процесс и datestamps будут разными.

Теперь, когда пользователь выполняет поиск определенной группы отправлений, выходящих из определенной области, запрос занимает очень много времени, чтобы вернуть записи. Когда я говорю «так долго», я имею в виду, что это может занять от 30 секунд до минуты.

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

Я знаю, что это не так много для работы, но, вне зависимости от того, как я буду индексировать таблицу, как это?

Я пытался добавить представление о столе, но я не мог понять, как его отобразить здесь.

Я отредактирую страницу, если вы просите об этом.

Пожалуйста, дайте мне знать.

Заранее спасибо.

+0

Полная схема текущей таблицы была бы полезна ... но вы можете захотеть просмотреть составной индекс – AJefferiss

+1

Вы хотите применять индексы на основе поиска в таблице. Можете ли вы привести несколько примеров того, как таблица запрашивается или используется в соединениях? –

+1

Оцените свой план выполнения запросов, чтобы определить источник проблемы. Строки 50K - это не много данных, но ваши проблемы, отсутствие индексов и возможное сканирование таблиц могут быть источником вашей проблемы. Проверьте https: //dev.mysql.com/doc/refman/5.5/en/execution-plan-information.html –

ответ

0

Одна вещь, чтобы отметить, что у вас уже есть индекс для первичного ключа - см Is the primary key automatically indexed in MySQL?

Это может быть быстрее, чтобы индекс только для поиск столбцов. Следует отметить, что у вас не может быть уникального индекса для этих данных, как указано.

+1

Вы имеете в виду индексирование поиска? Это то же самое, что выполняется запрос? –

+1

Индексы и запросы являются отдельными. Индекс - это постоянная структура, обновленная в соответствии с изменениями данных, запрос является временным. Статья в ответе Ясина выглядит разумно. Если вы создадите индекс, включающий все столбцы в стандартном запросе, тогда этот запрос будет улучшен в большинстве случаев –

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