Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
mysql> explain select * from test where a=4756 or b=45 \G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: test
partitions: NULL
type: index_merge
possible_keys: aidx,bidx
key: aidx,bidx
key_len: 5,5
ref: NULL
rows: 15
filtered: 100.00
Extra: Using union(aidx,bidx); Using where
1 row in set, 1 warning (0,00 sec)
Если нужно потестить индексы в Postgres — используйте
set local enable_seqscan=off;который поднимет стоимость seqscan до 100млн, а планировщик будет использовать его, как last resort.
Различие работы в использовании индексов в условии 'OR' баз данных Mysql и PostgeSQL