Я пытаюсь поэкспериментировать с индексами, но я все еще новичок в этом. Предположим, что я часто использую следующие запросы, поэтому мне нужно сделать индексы для таблиц music
и musicians
.Лучший способ индексирования с этими повторяющимися запросами
SELECT *
FROM music
where musician_id = @id
SELECT *
FROM music
where musician_id = @id and date_of_birth > @date
SELECT *
FROM music
where date_of_birth > @date1 and date_of_birth < @date2
SELECT first_name, last_name, musician_website
FROM musicians
where last_name = @last_name
SELECT customer_id, first_name, last_name,musician_website
FROM musicians
where last_name = @last_name and musician_website= @site
Как вы думаете, лучшее решение, если я хочу сделать индексы для этих запросов. Лучше всего сделать один для каждого столбца, который я хочу (например, 1 для musician_id
, один для date_of_birth
и т. Д.) Или, может быть, взять их в виде таких пар: musician_id
с date_of_birth
, затем last_name
с , а затем только date_of_birth
для третий запрос (где мне нужно их заказывать по дате). Что было бы лучшим вариантом здесь и почему?
хотя бы включить схему таблицы ... и почему у 'music' есть' date_of_birth'? Предполагаем ли мы догадываться, что вы хотели включить туда присоединиться? – SqlZim
Нет, это просто плохое имя для стола. столовая музыка хранит информацию о музыканте и дате рождения. – user2975038
Похоже, вам нужно беспокоиться о [нормализации] (http://mikehillyer.com/articles/an-introduction-to-database-normalization/) перед индексированием. – SqlZim