Using an enum index to limit records
While similar queries with = or &lt; or &lt;= will consider (and depending on cardinality estimates will use) an index on (state), a query with a condition of this type will not use an index.:

WHERE state &lt;&gt; 'done'


Things you can do instead:


write the condition as: 

WHERE (state &lt; 'done' OR state &gt; 'done')

use UNION:

SELECT a.*
FROM assessments AS a
WHERE state &lt; 'done'

UNION ALL

SELECT a.*
FROM assessments AS a
WHERE state &gt; 'done' ;

write the condition with IN / OR: 

WHERE state IN  ('draft', 'proofing', 'amends', ...)    -- everything except 'done'

WHERE (state = 'draft' OR state = 'proofing' OR state = 'amends' OR ...)