Как INDEX работает с MYSQL?

  • Автор темы CrazyZombie
  • 56
  • Обновлено
  • 14, May 2024
  • #1
Как INDEX работает с MYSQL?

Предположим, у меня есть 2 таких таблицы

//Таблица клиентов

идентификатор auto_increment,

имя пользователя char(30),

пароль символ(40),

телефонный интервал (10)

//Таблица профилей

идентификатор auto_increment,

имя пользователя char(30),

текст описания

И я создал ИНДЕКС по имени пользователя в обеих таблицах, вот так

создать индексное имя пользователя в
 customerTable
(имя пользователя, пароль) создать индексное имя пользователя в
 profileTable
(имя пользователя) Затем я запускаю этот запрос:

Запрос1: выберите * из
 customerTable
, где username='abc' предел 1 Запрос2: выберите * из
 customerTable
, где имя пользователя = 'abc' и пароль = 'xyzzzz' предел 1 Запрос3: выберите customerTable., ProfileTable. из CustomerTable, ProfileTable, где customerTable.username='abc' и customerTable.password='xyzzzzzzz' и customerTable.username = ProfileTable.username лимит 1 К каким индексам будут обращаться эти три запроса? Поскольку имя обоих индексов одинаковое «имя пользователя»… Спасибо

CrazyZombie


Рег
26 Feb, 2013

Тем
1

Постов
2

Баллов
12
  • 18, May 2024
  • #2
Я решил создать такие индексы: создать индекс ct_username в customerTable (имя пользователя, пароль) создать индекс pt_username в ProfileTable (имя пользователя) Спасибо за вашу помощь
 

kontent-stydiya


Рег
20 Aug, 2013

Тем
1

Постов
3

Баллов
13
  • 01, Jun 2024
  • #3
Я не знаком с MySQL, мой опыт связан с MS SQL. Поэтому, когда вы создаете индекс, его имя должно содержать имя таблицы и имя поля (соглашение об именах). В противном случае сложно работать со многими индексами в базе данных. Итак, я бы предложил переименовать ваши индексы, чтобы быть уверенным.
 

GigaSET881


Рег
06 Oct, 2010

Тем
1

Постов
3

Баллов
13
  • 08, Jun 2024
  • #4
это выглядит лучше. Кроме того, я не могу рекомендовать использовать короткие имена таблиц, такие как «ct» и «pt». Это может ввести в заблуждение. Однажды вы сможете создать новую таблицу «portfolioTable». Лучше использовать полное имя таблицы.
 

McLaren1


Рег
06 Apr, 2012

Тем
0

Постов
2

Баллов
2
Тем
49554
Комментарии
57426
Опыт
552966

Интересно