Я хотел бы получить небольшое разъяснение по настройке составного индекса для таблиц SQL.Может кто-нибудь, пожалуйста, сообщите мне, если это возможно, по крайней мере, с базой данных h2?
Пример: у меня есть 2 таблицы, категории и клиент.Каждая категория имеет много клиентов.Таким образом, требование состоит в том, чтобы разрешить одному покупателю покупать только товар в каждой категории [или, другими словами, customer_id должен быть уникальным для каждой категории].Однако существует миллионы записей, поэтому следующий запрос (для проверки уникальности) не слишком эффективен.
SELECT COUNT(*)
FROM CATEGORIES c
INNER JOIN CUSTOMER ct
on c.CUSTOMER_ID=ct.id
WHERE c.id = '1' AND ct.EMAIL='joe@xzy.com'
Для обработки требуется несколько секунд.Итак, вопрос в том, возможно ли создать индекс для обеих этих таблиц, как показано ниже?
CREATE INDEX "TEST" ON "CATEGORY" ("CUSTOMER_ID") and "CUSTOMER" ON CUSTOMER("EMAIL)
категории
| id | categoryname | CUSTOMER_ID |
+----+---------+---------+--------------
| 1 | electronics | 1 |
| 2 | food | 2 |
customer
| id | name | city | EMAIL
+----+------------------+-------
| 1 | Joe | Newyork | joe@xyz.com
| 2 | Ross | Washington| ross@xzy.com
| .. | .... | ..... |