Задавайте вопросы, мы ответим
Вы не зашли.
возможно ли использование одновременно пару индексов в одном запросе?
это я к тому что бы они не повторялись, к примеру есть индексы на (parol, hash) и (parol, user) если возможно использовать два индекса одновремено то можно сделать прросто индексы на (parol) (hash) (user)
таблица часто обновляемая и плодирование индексов сказывается на нагрузке.
Неактивен
Возможно, но этого тяжело добиться
Только точечные запросы по каждому из индексов, которые к тому же уникальны:
[celestia] root test > create table im (a int, b int, unique (a), unique (b)); Query OK, 0 rows affected (0.01 sec) [celestia] root test > insert im values (1,10), (2,20), (3,30), (4,40), (5,50), (6,60); Query OK, 6 rows affected (0.00 sec) Records: 6 Duplicates: 0 Warnings: 0 [celestia] root test > explain select * from im where a = 3 or b = 50; +----+-------------+-------+-------------+---------------+------+---------+------+------+-------------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+-------------+---------------+------+---------+------+------+-------------------------------+ | 1 | SIMPLE | im | index_merge | a,b | a,b | 5,5 | NULL | 2 | Using union(a,b); Using where | +----+-------------+-------+-------------+---------------+------+---------+------+------+-------------------------------+ 1 row in set (0.00 sec)
Неактивен
А почему длину индекса показывает 5? INT ведь 4 байта занимает.
Неактивен
4 будет, если int NOT NULL
Неактивен
Так, выходит, да здравствует NOT NULL?
(т.е. везде, где NULL не нужен, надо писать NOT NULL?)
Неактивен
NOT NULL - простое правило, которое обычно не спасает ситуацию, но зато экономит часть байтов.
Неактивен
И скорость работы некоторых запросов:
[celestia] root test > create table notnull (a int, b int not null, index(a), index(b)); Query OK, 0 rows affected (0.00 sec) [celestia] root test > insert notnull values (1,1),(2,2),(3,3),(4,4),(5,5); Query OK, 5 rows affected (0.00 sec) Records: 5 Duplicates: 0 Warnings: 0 [celestia] root test > explain select * from notnull where a=3; +----+-------------+---------+------+---------------+------+---------+-------+------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+---------+------+---------------+------+---------+-------+------+-------------+ | 1 | SIMPLE | notnull | ref | a | a | 5 | const | 1 | Using where | +----+-------------+---------+------+---------------+------+---------+-------+------+-------------+ 1 row in set (0.00 sec) [celestia] root test > explain select * from notnull where b=3; +----+-------------+---------+------+---------------+------+---------+-------+------+-------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+---------+------+---------------+------+---------+-------+------+-------+ | 1 | SIMPLE | notnull | ref | b | b | 4 | const | 1 | | +----+-------------+---------+------+---------------+------+---------+-------+------+-------+ 1 row in set (0.00 sec)
Неактивен