오픈소스 인사이트
home
오픈소스 기술 동향
home
🚀

MariaDB 11.8 LTS 출시: AI, 보안, 운영 효율성까지 한 번에 잡은 데이터베이스의 진화

7 more properties

들어가며

MariaDB 11.8은 2028년 6월까지 지원되는 장기 릴리즈입니다. 이번 버전은 AI/ML 워크로드 지원, 보안 강화, 쿼리 최적화, 운영 관리 편의성 등에서 혁신적인 변화를 담고 있어요. 특히 벡터 검색 기능의 공식 지원, 보안 인증 방식 강화, 복제 지연 감시 확장, UUID v4/v7 함수 추가가 눈에 띄는 변화입니다.

벡터 검색 기능: AI/ML 워크로드 지원 확장

[벡터 검색 아키텍처 다이어그램]
이번 MariaDB 11.8 버전부터 벡터 검색 기능이 LTS 환경에서 공식적으로 지원됩니다.
이전 버전(11.4)에서 Technical Preview로 소개된 이후 이제 LTS 버전에서 안정화되어 벡터 검색 기능(시맨틱 검색, 추천 시스템 등)이 최적화되어 있으며, AI/ML 애플리케이션을 위한 핵심 기능으로 자리 잡았어요.

주요 기능

VECTOR(N) 데이터 타입: 다차원 임베딩 저장이 가능하며, N은 16383까지 지원
벡터 인덱싱: VECTOR INDEX로 유사도 검색 최적화
거리 계산 함수:
VEC_DISTANCE_EUCLIDEAN() (L2 거리) : 주로 이미지, 공간 데이터에 적합
VEC_DISTANCE_COSINE() (코사인 유사도) : 텍스트 임베딩, 의미 기반 검색에 적합
VEC_DISTANCE() (자동 거리 함수 선택) : 인덱스 유형에 따라 Euclidean 또는 Cosine 자동 사용

예제: 벡터 검색 활용

-- 벡터 테이블 생성 CREATE TABLE t1 ( id INT AUTO_INCREMENT PRIMARY KEY, v VECTOR(5) NOT NULL, VECTOR INDEX (v) ); -- 데이터 입력 INSERT INTO t1 VALUES (1,x'e360d63ebe554f3fcdbc523f4522193f5236083d'), (2,x'f511303f72224a3fdd05fe3eb22a133ffae86a3f'), (3,x'f09baa3ea172763f123def3e0c7fe53e288bf33e'), (4,x'b97a523f2a193e3eb4f62e3f2d23583e9dd60d3f'), (5,x'f7c5df3e984b2b3e65e59d3d7376db3eac63773e'), (6,x'de01453ffa486d3f10aa4d3fdd66813c71cb163f'), (7,x'76edfc3e4b57243f10f8423fb158713f020bda3e'), (8,x'56926c3fdf098d3e2c8c5e3d1ad4953daa9d0b3e'), (9,x'7b713f3e5258323f80d1113d673b2b3f66e3583f'), (10,x'6ca1d43e9df91b3fe580da3e1c247d3f147cf33e'); -- 거리 계산 예제 SELECT VEC_DISTANCE_EUCLIDEAN(VEC_FROMTEXT('[1,2,3]'), VEC_FROMTEXT('[3,5,7]')), VEC_DISTANCE_COSINE(VEC_FROMTEXT('[1,2,3]'), VEC_FROMTEXT('[3,5,7]'))\G *************************** 1. row *************************** VEC_DISTANCE_EUCLIDEAN(VEC_FROMTEXT('[1,2,3]'), VEC_FROMTEXT('[3,5,7]')): 5.385164807134504 VEC_DISTANCE_COSINE(VEC_FROMTEXT('[1,2,3]'), VEC_FROMTEXT('[3,5,7]')): 0.00258509695694209
SQL
복사
"벡터 검색 기능은 AI/ML 애플리케이션의 핵심이지만, 프로덕션 환경에서 적용 전 테스트를 권장합니다."

보안 기능 강화 (PARSEC 인증 추가)

이번 버전에서는 보안 기능도 한층 강화되었어요.
MariaDB는 보안을 강화하기 위해 PARSEC(Password Authentication with Response Signed by Elliptic Curves) 이라는 새로운 인증 플러그인을 도입했습니다.
PARSEC은 비밀번호 자체를 직접 주고받는 대신, 클라이언트(사용자)가 비밀번호를 이용해 생성한 응답에 타원 곡선 암호화(ECC, Elliptic Curve Cryptography) 기술로 디지털 서명을 하고, 서버가 이를 검증하는 방식으로 작동해요.

PARSEC 인증 플러그인

타원곡선 암호(ECC) 기반
리플레이 공격, MITM 공격 방지
클라이언트가 생성한 응답을 디지털 서명으로 검증

문자셋 변경: 유니코드 및 이모티콘 지원

이번 버전부터 기본 문자셋이 latin1에서 utf8mb4로 변경되었습니다.
이를 통해 이모티콘, 다국어, 유니코드 전체를 편하게 다룰 수 있게 되었어요.

주요 변경

기본 문자셋
latin1
utf8mb4
기본 정렬
utf8mb4_general_ci
utf8mb4_uca1400_ai_ci
TIMESTAMP 최대 값
2038-01-19 03:14:07 UTC
2106-02-07 06:28:15 UTC (64비트 플랫폼에서만 지원)
 업그레이드 시 주의:
System Versioned Table 사용 시 TIMESTAMP 확장으로 인해 업그레이드 시간이 급증할 수 있어요.
utf8mb4로 변경 시, 이모티콘 사용 시 유니코드 처리에 주의해야 합니다.

UUID v4 / v7: 최신 ID 생성 방식

이번 버전부터는 UUID v4UUID v7 함수가 추가되었습니다. 이를 통해 랜덤 기반시간 기반 ID 생성이 가능해졌습니다.

UUID 함수 비교

UUID_v4()
랜덤 기반 (정렬 불안정)
SELECT UUID_v4(); → e3683c3c-60f9-4764-83bf-8c1951174e88
UUID_v7()
시간 기반 (순차적)
SELECT UUID_v7(); → 01995064-d30e-7c3c-bb81-0d45b681636f
"UUID_v7은 시간 기반으로 생성되므로, 순차적인 ID가 필요한 시스템에서 유용할 수 있어요."

FORMAT_BYTES 함수: 디스크 사용량 시각화

이제 디스크 사용량을 읽기 쉬운 형식으로 변환할 수 있는 FORMAT_BYTES() 함수가 추가되었어요.

예제: 디스크 사용량 확인

SELECT FORMAT_BYTES(1000) AS "1KB", FORMAT_BYTES(1024) AS "1KiB", FORMAT_BYTES(1000000000) AS "1GB"; +----------+----------+-----------+ | 1KB | 1KiB | 1GB | +----------+----------+-----------+ | 1000 bytes | 1.00 KiB | 953.67 MiB | +----------+----------+-----------+
SQL
복사

백업 및 복구 툴 (병렬 지원 확장)

이번 버전부터 백업 및 복구 시 병렬 처리 지원이 훨씬 강화되어, 대용량 데이터베이스 운영 시 성능 향상을 체감할 수 있을 거예요.

mariadb-dump 개선

-dir 옵션: 이 옵션은 여러 데이터베이스를 병렬로 덤프하는 옵션이며, --databases 또는 --all-databases 옵션과 함께 사용 할 수 있습니다. (11.5부터 사용 가능)
동작 방식 : 기존 --tab 옵션처럼 테이블 정의는 SQL 파일로, 데이터는 탭으로 구분된 파일로 저장해요
디렉토리 구조 : 지정된 디렉토리 안에 덤프 할 데이터베이스 이름 별로 하위 디렉토리를 생성하여 파일을 정리해요
병렬 처리 방식 : --parallel 옵션을 통해 병렬 처리가 가능하며, 이는 --tab 옵션이 지원하는 모든 기능과 동일하게 작동해요
-no-autocommit:기본적으로 활성화 되어있으며, InnoDB 성능 향상을 위해 전체 작업에 하나의 undo log를 사용해요

mariadb-import 개선

-dir 옵션: 생성된 백업 디렉터리에서 모든 테이블을 복원합니다. --dir 옵션과 함께 아래 옵션 지정이 가능 합니다. (11.6부터 사용 가능)
-database : 지정된 데이터베이스만 복원합니다. 2개 이상 지정하려면 각 데이터베이스에 대해 한번 씩, 지시문을 여러 번 사용합니다.
-ignore-database : 복원하지 않을 데이터베이스를 지정합니다. 2개 이상 지정하려면 각 데이터베이스에 대해 한번 씩, 지시문을 여러 번 사용합니다.
-table : 지정된 테이블만 복원합니다. 지정할 테이블을 2개 이상 지정하려면 각 테이블에 대해 한 번씩, 지시문을 여러 번 사용합니다.
-table=dbname.table1 --table=dbname.table2
-ignore-table : 복원하지 않을 테이블을 지정합니다. 무시할 테이블을 2개 이상 지정하려면 각 테이블에 대해 한 번씩, 지시문을 여러 번 사용합니다.
-ignore-table=database.table1 --ignore-table=database.table2
-innodb-optimize-keys 기본 활성화:
mariadb-import에는 데이터 로드 후까지 secondary index 생성을 후 순위로 미루는 옵션입니다. (기본값 : ON)
Primary 인덱스를 제외한 나머지 인덱스를 나중에 생성함으로써 데이터 로드 속도가 좀 더 빨라지게 됩니다.

복제 기능 개선: 대용량 트랜잭션 최적화

이번 버전에서는 대용량 트랜잭션 커밋 시 서버 동결 방지비동기 롤백 지원, 그리고 복제본에서 장기 실행 쿼리 자동 종료 기능이 추가되었어요.

주요 기능

대용량 커밋 최적화
binlog_large_commit_threshold 설정으로 커밋 시점의 바이너리 로그 처리 방식을 변경 했어요.
이 설정 값 보다 큰 크기의 트랜잭션이 들어오면 트랜잭션 동시성을 향상 시키기 위해, 대용량 트랜잭션이 캐시 파일을 새로운 바이너리 로그로 사용하도록 바이너리 로그를 회전 시켜요.
기존에는 복사(copy) 방식 이였지만, 11.8부터는 rename 방식으로 동작합니다.
이로 인해 작은 트랜잭션의 대기 시간 감소 시킬 수 있어요.
비동기 롤백 기능
장애 복구 시 Prepared 트랜잭션을 백그라운드 롤백 스레드에서 처리하도록 개선되었어요.
이로 인해 롤백으로 인한 서버 시작 시간이 단축되어 복구 효율성이 향상되었어요.
slave_abort_blocking_timeout
장시간 실행되는 SELECT로 인해 DDL이 해당 SELECT가 완료될 때 까지 대기하게 되어 지연을 유발하게 되는 문제를 해결하기 위해 쿼리를 자동 종료 시킬 수 있도록 개선되었어요.
기본 값은 31536000초 (1년)이고, 운영 환경에 따라 조정이 필요합니다.
너무 짧게 잡으면 필요한 쿼리가 종료될 리스크가 있으니 주의가 필요해요.

SEQUENCE 기능 강화

이제 시퀀스 생성 시 모든 INT 데이터 타입을 지원하고, INFORMATION_SCHEMA.SEQUENCES를 통해 시퀀스 상태를 SQL로 확인할 수 있어요.

주요 변화

CREATE SEQUENCE ... AS 를 사용하여 BIGINT UNSIGNED 을 포함한 모든 INT유형을 생성하여 범위 확장이 가능하며, 기본 값은 BIGINT
MINVALUE, MAXVALUE에 더 큰 값 입력 가능
ANALYZE TABLE 시 시퀀스는 통계 수집을 하지 않음
Sequence 관리를 위해 information_schema.sequences 테이블이 생성 되었음

예제: 시퀀스 조회

SELECT * FROM INFORMATION_SCHEMA.SEQUENCES\G *************************** 1. row *************************** SEQUENCE_CATALOG: def SEQUENCE_SCHEMA: test SEQUENCE_NAME: s_name DATA_TYPE: tinyint NUMERIC_PRECISION: 8 NUMERIC_PRECISION_RADIX: 2 NUMERIC_SCALE: 0 START_VALUE: 100 MINIMUM_VALUE: -127 MAXIMUM_VALUE: 126 INCREMENT: 10 CYCLE_OPTION: 0
SQL
복사

시각화 개선: 트랜잭션 시간대 문제 해결

이전 버전에서는 CURRENT_TIMESTAMP가 TIMESTAMP WITHOUT TIME ZONE을 반환했으나,이제는 DATETIME 값으로 반환되어 시간대 처리가 더 일관성 있게 이루어집니다.

예제: 시간대 감지 개선

-- 시간대 설정 SET time_zone='Europe/Paris'; -- 데이터 삽입 CREATE OR REPLACE TABLE t1 (a TIMESTAMP); SET timestamp=1729990799; -- 서머타임 INSERT INTO t1 VALUES (CURRENT_TIMESTAMP()), (COALESCE(CURRENT_TIMESTAMP())); SET timestamp=1729990800; -- 윈터타임 INSERT INTO t1 VALUES (CURRENT_TIMESTAMP()), (COALESCE(CURRENT_TIMESTAMP())); --11.7이전 SELECT a, UNIX_TIMESTAMP(a) FROM t1; +---------------------+-------------------+ | a | UNIX_TIMESTAMP(a) | +---------------------+-------------------+ | 2024-10-2702:59:59| 1729990799| | 2024-10-2702:59:59| 1729990799| | 2024-10-2702:00:00| 1729990800|<-- thisvalue is good | 2024-10-2702:00:00| 1729987200|<-- thisvalue is wrong +---------------------+-------------------+ --11.7이후 SELECT a, UNIX_TIMESTAMP(a) FROM t1; +---------------------+-------------------+ | a | UNIX_TIMESTAMP(a) | +---------------------+-------------------+ | 2024-10-2702:59:59| 1729990799| | 2024-10-2702:59:59| 1729990799| | 2024-10-2702:00:00| 1729990800| | 2024-10-2702:00:00| 1729990800| +---------------------+-------------------+
SQL
복사
"Timestamp 시간대를 더 정확하게 처리하여 데이터베이스의 일관성과 신뢰도를 높였습니다."

서버 스레드 이름 개선: 운영 진단에 유리

이제 각 서버 스레드에 역할 기반 이름이 부여되어, 운영 진단과 문제 추적이 훨씬 쉬워졌어요.

예제: 스레드 이름 비교

MariaDB 11.4: TASK: 699868(mariadbd) TASK: 699869(mariadbd) TASK: 699870(mariadbd) TASK: 699872(mariadbd) MariaDB 11.8: TASK: 1504380(one_connection) TASK: 1511102(ib_tpool_worker) TASK: 1511440(ib_tpool_worker) TASK: 659732(mariadbd) TASK: 659734(statement_timer) TASK: 659735(checkpoint_bg) TASK: 659736(ib_tpool_worker) TASK: 659737(page_cleaner) TASK: 659742(manager) TASK: 659743(binlog_bg) TASK: 659745(signal_handler)
SQL
복사

결론: 이제 더 스마트하게 운영 가능

MariaDB 11.8은 AI/ML보안운영 효율성쿼리 최적화 측면에서 데이터베이스 기술의 미래를 이끄는 버전입니다.
핵심 요약
VEC_DISTANCE() 함수로 벡터 거리 자동 선택
UUID_v4(), UUID_v7()로 최신 ID 생성
복제본 지연 감시 기능 확장
utf8mb4 및 uca1400_ai_ci로 유니코드 및 이모티콘 지원
 업그레이드 전 확인 필수
시스템 버전 테이블 사용 시 TIMESTAMP 확장으로 인한 업그레이드 시간 급증 가능성
PARSEC 인증 사용 시 보안성 향상
복제본에서 slave_abort_blocking_timeout으로 장기 실행 쿼리 자동 종료 가능
이번 릴리즈를 통해 더 안정적이고 확장성 있는 데이터베이스 환경을 구축해보세요!
임주연 프로
에스코어 OSS기술그룹에서 오픈소스DB 전문가로 기술지원 업무를 담당하고 있어요