У меня есть таблица MySQL с почти 40 миллионами записей. Схема выглядит так:MySQL: Большая таблица, медленные запросы и индексы
id (Key field, unique)
data_type (Key field, enumeration of TXT, BIN, HEX)
line_number (Key field)
record_label (low cardinality)
record_value (high cardinality)
Первые три поля являются частью первичного ключа, который является уникальным. Запросы в этой таблице занимают очень много времени, даже если я использую одно из ключевых полей в запросе. Исследование здесь показало, что мне нужны дополнительные индексы, но я не уверен точно, что индексировать. Например, запрос, как это:
SELECT * FROM my_table WHERE data_type = 'TXT' and id < 40000
, который не должен возвращать не более 4000 записей работает в течение нескольких минут без возвращения результата. Должен ли я создавать индекс для каждого поля, которое может быть использовано само по себе, а также все возможные комбинации полей, которые могут возникать в запросе? Что еще я могу сделать для повышения производительности?
Спасибо. -pv-
Спасибо. Я просмотрел информацию об индексе в документах MySQL, но не понял этого. Также объяснил объяснение EXPLAIN, поэтому спасибо. –