/ / Чи потрібна таблиця з двома полями (обидва int) індексом? - mysql, індексація

Чи потрібна два індикатори поля поля (обидва int)? - mysql, індексація

У мене є таблиця, яка містить лише два поля, id1 та i2.

Обидва є ідентифікаторами інших таблиць і є int (10).

Чи повинен я мати індекс на цій таблиці?

Редагувати: Я думаю, що ця таблиця складається з двох простих типів даних ... Чи буде MySQL запитувати неіндексовані дані менш ефективно, ніж індексовані дані?

У таблиці, про яку йде мова, буде більше зчитувань, ніж записів, і їх не запитують дуже часто, тому індекс було б добре мати.

Відповіді:

0 для відповіді № 1

Якщо це велика таблиця (тобто, що складається з безлічі рядків) індексом стовпців, які будуть використовуватись як частина запиту, може бути хорошою ідеєю. Крім того, якщо таблиця буде оновлюватися дуже рідко і використовується дуже часто як таблиця релятора, один або більше індексів можуть значно прискорити приєднання, що включають таблицю.

Те, що два стовпці таблиці стосуються первинних ключів, не усуває потреби в індексі. Розглянемо загальний сценарій з'єднання, що включає таблицю релятора, наприклад:

Таблиця1 ПРИЄДНАЙТЕСЬ РеляторТаблиця Приєднуйся до таблиці2

Може бути хорошою ідеєю створити індекс для RelatorTable на зовнішньому ключі в тій таблиці, яка посилається на первинний ключ таблиці1. Це може прискорити приєднання, особливо якщо RelatorTable великий.


-2 для відповіді № 2

Індекс у базах даних SQL дуже схожий на ті, що виЯкщо у книжках замість того, щоб переглядати вміст книги, щоб знайти все, що ви шукаєте, скоріше скористайтеся індексом, а потім перейдіть до точної сторінки. Але у вашому випадку ваша таблиця не містить даних, а лише посилання на дані, що зберігаються в інших таблицях, тому я особисто не відчуваю необхідності в цьому індексі. Поля поля id просто можуть функціонувати як індекси в цьому випадку .