2014-01-24 5 views
2

У меня есть таблица с полем «deleted_at», который является DATETIME, и я хотел бы такого рода запросов, которые будут выполняться быстро:Mysql индекс состояния «поле IS NULL»

SELECT * FROM table WHERE deleted_at IS NULL 

Можно индексировать «нулевость» поля вместо индексации каждого значения даты и времени моего поля?

+0

[This] (http://en.wikipedia.org/wiki/Database_index) ответит на ваш вопрос. –

+1

есть возможно.you мог. –

+0

Посмотрите на эту ссылку - Частичный индекс: http://en.wikipedia.org/wiki/Partial_index – manzelo

ответ

1

Вы можете index nullable columns, однако индекс будет использоваться, только если есть хорошая избирательность по нулям, т. Е. Только небольшой процент ваших данных на самом деле равен нулю.

К сожалению, MySql doesn't supportfiltered/partial indexes, как SqlServer, что позволяет вам индексировать JUST для строк, которые являются NULL.

So TL; DR, если NULLs в deleted_at являются исключением, а не правилом, а затем создайте индекс, но это также будет индексировать значения, отличные от null.

Смежные вопросы