У меня есть следующие user registration table
:MYSQL InnoDB двигатель индексации (B-Tree)
ID INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
User_name VARCHAR(35) NOT NULL,
Full_name VARCHAR(55) NOT NULL,
User_vars VARCHAR(255) NOT NULL,
BirthDay DATE NOT NULL,
password CHAR(70) NOT NULL,
Security_hint VARCHAR(27) NOT NULL,
Email VARCHAR(225) NOT NULL,
userType ENUM ('a','b','c','d') NOT NULL DEFAULT 'a',
Signup_Date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
activation TINYINT(1) UNSIGNED NOT NULL,
Ip BINARY(16) NOT NULL,
PRIMARY KEY (ID),
UNIQUE KEY User_name (User_name,Email)
Я действительно путают ли я должен индексировать поля BirthDay, Signup_Date, Full_name, User_vars and userType
как эта информация должна отображаться на любой странице пользователя посещения.
User_vars
- это поле, которое пользователь может обновлять ежедневно (или даже еженедельно); Я считаю, что индексирование этого поля может быть не очень хорошим, поскольку индексы замедляют операции записи; исправьте меня, если ошибаетесь. У меня есть много других полей, подобных этому в других таблицах (поля, которые ежедневно обновляются пользователями, и их обновления отображаются на любой странице, которую они посещают) и не знают, нужно ли их индексировать также
Примечание. : Я знаю, что могу запросить их один раз, затем кешировать их, однако я боюсь, что первый запрос к таблице будет медленным, чтобы вернуть результат.
Большое спасибо
Индексирование зависит от запросов, которые вы планируете запускать. Возможно, вы можете ответить несколькими примерными запросами –