db 2

조회 성능을 위한 DB Index(feat.MySQL)

들어가며대부분의 웹 어플리케이션을 구축하는 데 있어 DB 입출력 작업은 필수적이다. 그러므로 서버 성능의 관점에서, 클라이언트의 요청에 신속하게 대응하기 위해서는 DB 성능을 함께 고려해야 한다. DB 성능에 있어 인덱스는 늘 빠지지 않고 등장하는 주제이다. 관련하여 여러 개념들을 들어왔는데, 한 번 정리해보고자 한다. 널리 활용되는 RDBMS인 MySQL을 기준으로 작성했다. Index의 정의와 필요성Index란 DB의 Table에 대한 동작 속도를 높여주는 자료구조이다. 책을 읽을 때 활용하는 목차와 같다. 목차를 참고하여, 원하는 정보를 더욱 빠르게 얻을 수 있다. 웹 어플리케이션 동작 시에는 DB Table에 대한 조회가 빈번하게 일어나고, 대부분 필터링을 적용한다. 이 때 DB에서는 조건에 맞는..

DB/설계 2025.08.24

Python ORM : SQLAlchemy

ORM(Object-Relational Mapping)ORM은 객체와 RDB 테이블을 매핑해주는 기술을 의미한다. 어플리케이션에서 DB I/O를 수행할 때, 추상화 계층을 한 번 더 두어서 SQL 쿼리가 아닌 프로그래밍 언어로 수행할 수 있게끔 한다. 이를 통해 개발자는 비즈니스 로직을 작성하는 데에 집중하게 되어 개발 생산성과 프로젝트의 유지/보수성이 높아진다. 관련 기술로는, 대표적으로 Java 진영의 JPA/Hibernate과 이를 보완하는 QueryDSL이 있다. Python 진영에서는 SQLAlchemy가 동일한 역할을 한다. SQLAlchemySQLAlchemy는 DB 연결, 자원 관리, SQL Expression Language, ORM 까지 DB I/O 기능을 제공하는 Python 패키지이..