Предположим, у меня есть столбец с плавающей точкой, индекс b-дерева и миллион строк:
CREATE TABLE test (
val FLOAT,
KEY (val)
);
INSERT INTO test VALUES (random(-1000, 1000)), (random(-1000, 1000)), ...
(1М рядов)
Теперь, если я хочу сделать запрос вроде
SELECT * FROM test WHERE abs(val) > param
или
SELECT * FROM test WHERE int(val) % 2; /* odd integer numbers only */
Какие базы данных могут оптимизировать это для использования индекса на val
, чтобы мне не приходилось использовать индекс для проверяемого выражения или выполнять обратное выражение самостоятельно?