2017-01-31 6 views
0

Я пытаюсь поэкспериментировать с индексами, но я все еще новичок в этом. Предположим, что я часто использую следующие запросы, поэтому мне нужно сделать индексы для таблиц 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 для третий запрос (где мне нужно их заказывать по дате). Что было бы лучшим вариантом здесь и почему?

+0

хотя бы включить схему таблицы ... и почему у 'music' есть' date_of_birth'? Предполагаем ли мы догадываться, что вы хотели включить туда присоединиться? – SqlZim

+0

Нет, это просто плохое имя для стола. столовая музыка хранит информацию о музыканте и дате рождения. – user2975038

+0

Похоже, вам нужно беспокоиться о [нормализации] (http://mikehillyer.com/articles/an-introduction-to-database-normalization/) перед индексированием. – SqlZim

ответ

2

Индексы вы хотите являются:

  • music(musician_id, date_of_birth) (запросы 1 и 2)
  • music(date_of_birth) (запрос 3)
  • musicians(last_name, web_site) (запросов 4 и 5)

За последние индекс, вы можете включить customer_id и first_name, если вы действительно этого хотите.

+1

запросы 1, 2 и 3 относятся к таблице под названием 'music', а не' musicians' – SqlZim

+0

да, вы правы @SqlZim – user2975038

+0

@SqlZim. , , Спасибо; лучше глаза, чем я. –