해당 쿼리에 대해 할 수있는 가장 좋은 방법은 productName을 인덱싱하는 것입니다. 또한 (*)를 선택하지 말고 실제로 필요한 열만 선택하는 것이 좋습니다.
또한 선택할 필요가있는 열이 거의 없거나 하나만 있으면 표지 인덱스를 고려할 수도 있습니다. 예를 들어
: 위의 쿼리
SELECT productName, buyPrice
FROM products
WHERE productName = 'test';
, 나는 제품에 대한 인덱스 (제품 이름, buyPrice)를 추가합니다. 이렇게하면 데이터베이스가 인덱스를 사용하여 데이터를 필터링하고 검색하는 데 매우 빨라집니다. 위의 의견에 언급 된 다른 쿼리에 대해서는
:
SELECT * FROM products ORDER BY buyPrice
나는 것 인덱스 제품이 경우 (buyPrice) - 당신이 한 그것의로, ASC 또는 DESC로 주문하는 경우는 문제가되지 않습니다 쿼리에서 일관성이 있습니다 (ORDER BY의 모든 열은 DESC 또는 ASC입니다).
또한 select (*)를 피할 것이고이 쿼리에 LIMIT를 추가하는 것도 고려할 것입니다. 실제로 모든 행이 필요합니까?
쿼리에 대한'buyPrice'를'SELECT * FROM products ORDER BY buyPrice' 및'SELECT * FROM products ORDER BY buyPrice DESC'로 인덱싱하는 것은 어떻습니까? 인덱스는 기본적으로 ASC 순서로 정렬되기 때문에 그렇게하는 것이 효율적이라고 생각합니다. – codeDragon
어떤 일이 일어나는지 보지 않으려면 인덱스 추가, 수정 또는 제거를 통해 데이터를 수정하지 마십시오. –
@codeDragon. . . 새로운 질문은 질문이 아닌 의견으로 물어야합니다. –