데이터 베이스4 MySQL Boolean 컬럼의 진실과 주의점 개요 MySQL에서 Boolean 컬럼 타입을 사용해서 테이블을 생성하게되면 내부적으로는 TINYINT(1) 값으로 생성되는 것을 볼 수 있다. 이렇게 생성된 테이블을 조회하기 위해서는 TRUE/FALSE 또는 1/0의 값을 사용할 수 있다. 사용방법 1. 테이블 생성 아래와 같이 테이블을 생성해보자 CREATE TABLE employee ( id INT(10) AUTO_INCREMENT PRIMARY KEY, NAME VARCHAR(50), enabled BOOL ); 위와 같이 테이블을 생성해도 실제로 DDL을 보면 TINYINT(1)으로 생성된 것을 볼 수 있다. 내부적으로는 Boolean 타입 자체가 없기때문이다. mysql> SHOW CREATE TABLE employee CREATE TABLE.. 2023. 8. 7. MySQL 파티션을 왜 사용하는가?! 파티션이란? 데이터를 물리적으로 분할하여 쿼리 성능과 데이터 관리 및 유지보수 작업을 용이하게 하기 위해서이다. 데이터베이스 서버의 입장에서는 데이터를 별도의 테이블로 분리해서 저장하지만 사용자 입장에서는 여전히 하나의 테이블로 읽기와 쓰기를 할 수 있게 해주는 효과를 가질 수 있다. 인덱스에 용이 테이블의 크기가 커질수록 인덱스의 크기도 같이 커지기 때문에 읽기/쓰기에 대한 IO에 같이 늘어난다. 이렇게 커짐으로써 인덱스에 처리되는 시간이 늘어나고 인덱스가 물리적인 메모리보다 커지는 경우도 발생한다. 파티션을 분할하면 이런 효과를 가져온다고 말할 수 있다. 파티션을 어떻게 나눌 수 있는가? 우선 방법론에 대해 알아보고 실험을 해보자. RANGE Partitioning (범위 분할) RANGE 분할은 주.. 2023. 7. 19. Milvus Vector DataBase에서 로그 수준을 동적으로 변경하자 Overview 미들웨어, 데이터 베이스등과 같은 시스템을 운영하다보면 로그 레벨을 동적으로 변경해야되는 때가 많다. 그럴때마다 설정 파일을 변경하면서 시스템을 내렸다 올렸다는 일은 여간 까다롭거나 비용이 많이 드는 일이 아닐 수 없다. 다행히 Milvus에서는 이런 로그 레벨 수준으로 동적으로 변경 가능하도록 API 제공해주고 있다. https://medium.com/vector-database/dynamically-change-log-levels-in-the-milvus-vector-database-252d467e5052 Dynamically Change Log Levels in the Milvus Vector Database The Milvus vector database adopts the zap.. 2023. 7. 12. MySQL의 VARCHAR(1000) vs TEXT의 차이점은 무엇일까? 왜 VARCHAR(500), VARCHAR(1000) 등 이런식으로 사용하는걸까? TEXT로 데이터형으로 저장하면 되지. 왜 굳이 VARCHAR(500) 이런식으로 사용하는지가 의문일 것이다. 그럼 서두는 제쳐두고 간단하게 설명부터 하도록 하겠다. 제약사항 VARHCAR는 공간적으로 제약이 있다. VARCHAR는 테이블에 하나의 레코드가 저장할 수 있는 최대 길이가 65,535 바이트이다. 그렇다보니 레코드 사이즈 한계에 따라서 최대 저장 길이 설정시 공간을 아껴 쓸 필요가 있다. 하지만 이에 비해 BLOB, TEXT 같은 타입은 제약이 없다. BLOB, TEXT과 같은 LOB (Large Object)는 B-Tree 외부의 Off-Page 페이지에 저장을 한다. LOB 타입의 컬럼을 항상 Off-Pag.. 2023. 7. 7. 이전 1 다음 728x90 반응형