더 자세한 예제를 제공하지 않았습니다.
"use-the-index-luke-solution"뿐만 아니라 아이디어에 대한 여러 가지 대안이 있습니다. 그리고 데이터베이스에 많이 의존합니다.
"union"을 사용할 수도 있습니다. 너무 많은 자원을 사용할 수있는 경우도 있으며, 너무 많은 자원을 사용하는 경우에도 최적의 솔루션이 될 수 있습니다.
SELECT
<if-expression>
FROM
MyTable
WHERE
(MyTable.status = 'regular')
UNION
SELECT
<else-expression>
FROM
MyTable
WHERE
(MyTable.status <> 'regular')
그리고, 어떤 경우에는, 당신은 또한
SELECT
<if-expression>
FROM
MyTable
WHERE
(MyTable.status = 'regular')
ORDER BY <indexed-fields-used-in-expression>
UNION
SELECT
<else-expression>
FROM
MyTable
WHERE
(MyTable.status <> 'regular')
ORDER BY <indexed-fields-used-in-expression>
건배를 추가 할 수 있습니다.
테이블을 변경할 때 유일한 시간 인덱스가 업데이트되지 않습니다 (예 : 대량로드 작업 중에). 일반적으로 그들은 항상 자동 업데이트해야합니다. –
(+1) 원인 : 프로덕션 코드에서 동일한 기능을 사용해야합니다. 매우 흔하지는 않지만 클라이언트/스택 소유자 비즈니스 로직에서 필요로하는 경우가 있습니다. – umlcat