CS-studi / CS-study

📚 면접을 위한 CS study

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Database/Index

LEEHYUNDONG opened this issue · comments

CS/Database/Index

@annie1004619
인덱스는 DBMS의 저장 성능을 희생하고 검색 성능을 높이기 위해 만들어진 자료 구조이다.

인덱스의 목적 RDBMS의 검색 속도를 높이는데 있다.

DELETE, INSERT, UPDATE 쿼리에는 해당 사항이 없으며 index 사용 시 오히려 좀 느려진다.


이 부분에서 delete, insert, update 쿼리에는 index를 사용하면 오히려 느려진다는게 잘 이해가 가지 않습니다.

index 사용 시 데이터를 delete, insert, update하면 느려지는거고(데이터를 계속 정렬해줘야 하니까 + 만약에 인덱스 된 데이터를 삭제할 때는 인덱스에는 플래그 표시 같은 걸로 사용하지 않는 인덱스에 별도 표시를 하기 때문에 미사용 인덱스가 누적될 시, 성능 상의 문제가 있을 수 있다 정도??)

하지만 index 자체가 검색 성능을 높여주기 위해 사용된다고 하니 데이터베이스에서 데이터를 삭제(delete)를 하는 것은 데이터의 위치를 조회(검색)하여 삭제하기 때문에 delete의 관점에서는 index 사용 시 성능이 빠른 편이 아닌가요? 헷갈리네요.

아 그러네요! 그 insert delete update를 자주 사용했을 때 성능이 떨어진다. 인 것 같고
delete 와 update시 인덱스를 사용하면 search 하는 데에는 빠르게 찾는게 맞는 것 같아요.

답변 감사합니다 👍