MySQL에서 LIMIT 1 사용
MySQL에서 쿼리 끝에 LIMIT 1을 추가하는 것이 적절한 시기는 언제입니까?보통 DELETE에 추가하는데 INSERT a와 UPDATE까지 같이 사용하는 것을 보았습니다.오버킬인가요 아니면 좋은 연습인가요?
INSERT INTO .. VALUES () LIMIT 1
존재하지 않습니다.여러분이 거기에 얼마나 많은 가치를 넣었는지 알기를 바랍니다!
INSERT INTO .. SELECT ... LIMIT 1
LIMIT가 SELECT에 있기 때문에 존재하고 상당히 유용하며 주제에서 벗어납니다.
DELETE ... LIMIT 1
UPDATE ... LIMIT 1
극히 드물게 유용합니다.사용자의 위치가 고유 조건과 일치하는지 확인할 수 있을 정도로 데이터베이스를 잘 알고 있거나, 그렇지 않은 경우 데이터베이스를 살펴보고 SQL을 학습하는 데 시간을 조금 더 할애해야 합니다.
그렇지만.....
UPDATE jobs SET owner=me WHERE owner IS NULL ORDER BY job_submit_time LIMIT 1
매우 유용할 수 있습니다!그러면 대기, 잠금 또는 충돌 해결 없이 대기열에서 작업을 가져올 수 있는 거의 잠금 없는 작업 대기열이 됩니다.아주 훌륭합니다.
DELETE FROM cache ORDER BY last_update_time LIMIT N
캐시 공간이 너무 많이 소요됩니까?N개의 가장 오래된 행 제거...
EXPLAXE를 사용하면 한 가지 결과가 발견되면 작업 속도가 빨라지는 것을 확인할 수 있습니다.
업데이트 삽입이 한 행에만 영향을 미치는 것을 알고 있다면 이를 지정하여 해당 행이 잘못되어 여러 행을 망치는 일이 없도록 보장하는 것입니다.
쿼리의 속도를 높이면서 동시에 보안을 강화하는 것을 오버킬이라고 부를 수 있는 예는 생각할 수 없습니다.좋은 연습란에 제 투표를 넣겠습니다.
극히 드물게 유용합니다.>님의 WHERE가 고유한 조건과 일치하는지 확신할 수 있을 정도로 데이터베이스를 알고 있거나, 그렇지 않은 경우 >님은 데이터베이스를 살펴보고 SQL을 배우는 데 조금 더 시간을 할애해야 합니다.
제한 1이 정말 유용한 경우가 있습니다.예를 들어 고유한 키가 없는 테이블입니다.만약 우리가 똑같은 것을 5개 가지고 있다면, 1개만 제한하면 될 것입니다.
PHP로 암호를 잊어버렸다고 가정합니다.
UPDATE
`users`
SET
`pass` = PASSWORD('{$new_salted_pass}')
WHERE
`account_id` = '{$account_id}'
LIMIT 1
소프트웨어가 SaaS(Software as a Service)인 경우,
여러 조직에서 소프트웨어를 사용하고,
그리고. account_id
-organization_id
필드가 함께 있는 것은 고유한 ID입니다.
account_id는 다음과 같이 코드에서 자동으로 생성됩니다.
JONES0001
JONES0002
JONES0003
...
그리고 소프트웨어 엔지니어는 추가하는 것을 잊어버립니다.AND organization_id = '{$organization_id}'
o에 맞게WHERE
건.
QA 환경에서 Password를 잊어버린 기능을 테스트할 때 QA를 통과합니다.
코드는 생산에 적용되고
그 다음에LIMIT 1
는 두 조직의 사용자가 동일한 계정_id를 공유할 때 발생하는 피해를 제한할 수 있습니다.
언급URL : https://stackoverflow.com/questions/5924115/using-limit-1-in-mysql
'IT' 카테고리의 다른 글
null >= 0 & & null <= 0>인데 null == 0이 아닌 이유는 무엇입니까? (0) | 2023.10.10 |
---|---|
대소문자를 구분하지 않는 PowerShell 교체 (0) | 2023.10.10 |
__ne__을 __eq__의 부정으로 구현해야 합니까? (0) | 2023.10.10 |
c++ 주 기능에서 다른 기능으로 변경하려면 어떻게 해야 합니까? (0) | 2023.10.10 |
MariaDB 필드의 성배에 값이 있지만 null을 가져왔습니다. (0) | 2023.10.05 |