RDBMS(16)
-
[PostgreSQL] Vector Search를 위한 인덱스 타입 비교 (HNSW vs IVFFlat)
서론안녕하세요! 요즘 AI 시대를 맞이하여 벡터 검색(Vector Search)이 정말 핫한데요. PostgreSQL에서도 pgvector 확장을 통해 벡터 검색을 지원하고 있습니다. 오늘은 벡터 검색에 사용되는 두 가지 주요 인덱스 타입인 HNSW와 IVFFlat에 대해 알아보겠습니다.무엇이 다를까?우선 두 인덱스의 주요 특징을 간단히 비교해볼까요?HNSW (Hierarchical Navigable Small World)그래프 기반 인덱스빠른 검색 속도더 많은 메모리 사용인덱스 생성이 더 오래 걸림IVFFlat (Inverted File Flat)클러스터 기반 인덱스적은 메모리 사용빠른 인덱스 생성HNSW보다는 조금 느린 검색 속도실제 사용 예제간단한 예제로 두 인덱스의 사용법을 살펴보겠습니다.-- p..
2024.11.14 -
[PostgreSQL] 인덱스(Index)의 기초 이해하기
서론안녕하세요! 오늘은 PostgreSQL에서 매우 중요한 개념인 인덱스(Index)에 대해 알아보려고 합니다. 데이터베이스 성능 최적화에 있어 인덱스는 정말 중요한 요소인데요, 어떤 경우에 필요하고 어떻게 동작하는지 자세히 살펴보겠습니다.1. 인덱스의 필요성책을 읽을 때 목차가 없다고 상상해보세요. 특정 내용을 찾으려면 처음부터 끝까지 다 훑어봐야 하겠죠? 데이터베이스도 마찬가지입니다.인덱스가 없을 때의 문제점-- 인덱스가 없는 상황에서의 검색SELECT * FROM users WHERE email = 'user@example.com';이 쿼리는 테이블의 모든 row를 확인해야 합니다(Full Table Scan). 데이터가 많아질수록 성능은 급격히 저하됩니다.인덱스의 장점검색 속도 향상ORDER BY..
2024.11.14 -
[AWS Redshift] FULL JOIN과 COALESCE
오늘은 full join과 coalesce를 같이 활용해보았는데 이것을 한번 정리해 보려고 합니다. 1. full join 두개의 테이블의 모든 공통 요소를 결합하는 join형태로서 둘중 하나라도 값을 가지고 있다면 병합됩니다.(합집합) 2. coalesce 주로 사용되는 목적은 NULL처리 입니다. NULL인경우 어떤값으로 변경하도록 하는데 많이 사용합니다. 그럼 이둘을 합쳐서 사용해보면 어떤 효과가 발생할까요?? SELECT COALESCE(dt.id, dt2.id) AS id, COALESCE(dt.create_date, dt2.create_date) AS create_date, (COALESCE(dt.driving_sec, 0) + COALESCE(dt2.cancel_driving_sec, 0))..
2024.03.08 -
MSSQL - DataBase내부 테이블들의 용량/row수 확인하기
우리가 데이터를 운영하면서 생성한 테이블들의 내부 row수 또는 테이블의 현재 용량이 어느정도인지를 확인하기 위해서 사용하는 쿼리 두개를 기록해 본다. 1. 현재 데이터베이스에 존재하는 테이블들의 용량을 볼 수 있는 쿼리 SELECT CONVERT(VARCHAR(30), MIN(o.name)) AS TABLE_NAME , LTRIM(STR(SUM(reserved) * 8192.0 / 1024.0, 15, 0) + ' KB') AS TABLE_SIZE FROM sysindexes i INNER JOIN sysobjects o ON o.id = i.id WHERE i.indid IN (0, 1, 255) AND o.xtype = 'U' GROUP BY i.id ORDER BY -- t_name ASC SUM..
2022.05.07 -
MSSQL - 날짜 및 시간 더하고 빼기
이전 글에서 구했던 시간을 내가 원하는데로 빼고 더하는 방법에 대해 알아봅니다. 이전글: MSSQL - 현재 날짜 시간 구하기 1. 날짜 더하고 빼기 SELECT CONVERT(date,GETDATE() -1) AS 'DATE' 결과 현재 쿼리 실행일은 1월 4일로 GETDATE() 바로 뒤에 -x, +x 해주는걸로 날짜를 일단위로 변경할 수 있습니다. 2. Date타입에서 년, 월, 일 변경 SELECT DATEADD(DAY, -10, CONVERT(date,GETDATE())) AS [10일전] SELECT DATEADD(MONTH, -10, CONVERT(date,GETDATE())) AS [10개월전] SELECT DATEADD(YEAR, -10, CONVERT(date,GETDATE())) AS..
2022.01.04 -
MSSQL - 현재 날짜 시간 구하기
쿼리를 사용하면서 오늘 날짜부터 혹은 오늘날짜 까지 데이터를 조회하는 경우가 생기는데 그럴때 사용하게 된다. 1. 오늘날짜 및 시간 가져오기 SELECT GETDATE() AS 'DATETIME' 결과 2. 오늘 날짜만 가져오기 SELECT CONVERT(date,GETDATE()) AS 'DATE' 결과 3. 지금 현재시간만 가져오고 싶은 경우 SELECT CONVERT(time,GETDATE()) AS 'TIME' 결과 저는 서버 시간이 UTC로 설정되어있어 -9시간 되어있습니다. 잘 활용하여 쿼리 작성 하시길 바랍니다.
2022.01.04