본문 바로가기

MariaDB

(4)
MariaDB 에서 GROUP BY 구문 사용시 주의할 점 MariaDB 에서 GROUP BY 사용 시 주의 점 개요MSSQL 로만 쿼리문을 작성하다가 신규 프로젝트 때문에 MariaDB을 처음 접하게 되었을 때의 일이었다.다른 건 비슷비슷하다고 생각했었는데, 아니 다른 개발자들의 쿼리문을 봤을 때 신기한 점을 발견하였다.SELECT H_CODE, AREA1, AREA2, AREA3 FROM 행정동GROUP BY H_CODE 위의 쿼리를 보면 이상한 점이 있어 보이는가? 나의 관점에서는 GROUP BY 로 선언된 필드 외에 다른 필드를 노출할 때는 집계 함수인 MIN, MAX, AVG 가 나와야 하는데 없던 것이었다. 당연히 문법 오류로 실행이 안될 거라 생각됐는데, 웬일 실행이 되는 게 아닌가!!!알고 보니 MariaDB 에서는 데이터베이스 설정에 따라 강제할..
MariaDB 트랜잭션 격리 수준(isolation level)은 어떤 것으로 설정해야 할까? 트랜잭션 격리수준에 대해 알아보자 격리수준을 READ UNCOMMITED 로 변경하는게 좋다고 제안을 받았다. 트랜잭션에 대해서는 이해하고 있었지만 트랜잭션 격리 수준에 대해서는 정확히 알지 못해서 이번에 정리하면서 학습하기로 하였다. 트랜잭션 격리수준의 중요성 데이터베이스에서 여러 트랜잭션이 동시에 실행될 때 데이터의 일관성과 격리를 관리하는데 사용된다. 데이터 일관성 보장 격리 수준은 여러 트랜잭션이 동시에 실행될 때 각 트랜잭션이 다른 트랜잭션에 의해 수행 중인 작업에 대해 알지 못하도록 하는것이다. 독립된 트랜잭션은 다른 트랜잭션에 영향을 받지 않고 자신의 작업을 수행하며, 이로써 데이터의 일관성이 유지된다. 동시성 제어 둘 이상의 트랜잭션이 동일한 데이터를 수정하려고 할 때 충돌이 발생할 수 있..
MariaDB의 Character Set 및 Collation 종류 및 변경 방법 쿼리를 수행할 때 조건절이나 조인 시 문자열을 비교할 때, 각 테이블 및 칼럼의 문자정렬(Collaction)이 일치하지 않다면 쿼리 성능 저하가 올 수 있습니다. 그만큼, 문자셋과 문자정렬 방법은 모두 동일하게 운영하는 것이 좋습니다. 이번에는 MariaDB의 문자셋(Character Set)과 문자정렬(Collaction)에 대해서 작성해 보도록 하겠습니다.문자셋(Charset)MariaDB에서 문자셋은 데이터베이스에서 사용되는 문자의 인코딩을 정의하는 것입니다. 문자셋은 데이터를 검색하거나 문자를 저장할 때 어떻게 문자를 표현할지 결정합니다. MariaDB에서는 다양한 문자셋을 지원하며, 어떤 문자셋을 선택할지는 주로 데이터의 종류, 다국어 지원 여부, 성능, 저장 공간 효율 등을 고려해서 결정됩니..
나만의 가독성 높은 SQL 작성가이드 SELECT 쿼리문을 작성할 때 개인적으로 가장 먼저 중요시하는 것은 당연히 수행 성능이겠지만, 그다음으로 꼽자면 가독성이라고 생각합니다. 가독성을 좋게 하기 위한 나만의 쿼리 작성 방법을 공유해보고자 합니다. 개요 웹개발자라면 당연히 쿼리문을 자주 작성할 수밖에 없는데요. 혼자 프로젝트에 참여하면 상관이 없겠으나, 다양한 개발자들과 개발을 할 때는 개발 표준 가이드가 있을 것입니다. 하지만, 지금까지 SM 하는 회사만 다녀서 그런지, 인수인계가 안돼서 그런지, 개발되어 있는 소스를 보면 다들 각자의 스타일로 개발되어 있었던 것 같습니다. 그래서 나만의 SQL 쿼리 작성 가이드를 정립하였고, 당연히 정답은 아니지만 그 내용을 공유해볼려고 블로그 첫 글을 작성해 봅니다. 쿼리문 작성 규칙 1. 테이블 및 ..