인덱스 개념 인덱스란 SELECT 구문을 사용할 때 조회되는 속도를 높이기 위해서 특정 컬럼의 데이터를 말 그대로 인덱싱 하는 기술을 의미합니다. 책을 읽을 때 맨 뒤쪽에 색인(Index) 부분을 떠올리시면 좋을 것 같습니다. 만약 어떤 책에서 특정 단어를 포함한 내용을 눈으로만 찾으려면 정말 오래 걸릴 겁니다. 하지만 색인 부분에서 특정 페이지를 찾고 해당 부분을 찾는 다면 훨씬 빨리 찾을 수 있습니다. 물론 컴퓨터는 색인이 되어 있지 않아도 빨리 찾을 수 있지만 특정 자원을 활용하기 위해서는 반드시 인덱스를 사용하고 효율적으로 데이터를 찾아서 반환하는 게 중요합니다. 인덱스 키의 종류 프라이머리 키 : 보통 테이블 생성 시 기본 적으로 만들게 되는 기본키입니다. 키 이름이 없는 것이 특징이고 가장 빠..
JPA를 사용하면서 JQPL 로 쿼리를 작성했는데 다음과 같은 에러 문제를 겪었습니다. GROUP BY 명령을 실행할 때 MySQL 5.7 이상 버전 부터는 sql_mode 옵션을 변경해줘야 합니다. GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 오래된 데이터베이스에서는 문제없이 동작하는 코드 였는데 새로운 MySQL 을 도커로 설치하고 실행하니 문제가 되어서 찾아보았습니다. only_full_group_by 옵션을 비활성화 하는 방법은 다음과 같습니다. 관리자 권한으로 로그인 한뒤에 mysql 에서 다음과 같이 입력해서 only_full_group_by 옵션을 꺼주면 됩니다. 참고로 MySQL 뿐만아니라 MariaDB에서도..
MySQL 커뮤니티 버전 MySQL은 세계에서 가장 많이 사용하는 오픈소스 RDBMS입니다. 1995년에 최초 개발되었으며 코드가 공개되어 있어 누구나 다운로드하여 사용할 수 있는 데이터베이스 관리 툴입니다. 무료에도 불구하고 처리 속도가 빠르고 설치가 쉽습니다. 대용랑 데이터 처리까지 가능하며 보통 소규모 조직에서 저비용으로 시스템을 구축할 때 적합한 DBMS입니다. 전세계적으로 1천만대 이상의 서버가 운영되고 있으며 오라클과 함께 가장 많이 사용되는 DB 중에 하나입니다. 다만 2010년에 오라클에 인수되었지만 현재도 오픈소스 정책은 유지되고 있으며 리눅스나 맥, 윈도우에서 모두 사용할 수 있고 다양한 프로그래밍 언어에서도 적용이 가능한 범용 데이터베이스입니다. MySQL 제품 분류 구분 제품명 특징..
MariaDB 관리 MariadDB 의 기초적인 사용자 관리와 간단한 SQL 구문을 이용해 데이터베이스 스키마와 테이블을 만들고 데이터를 삽입하는 법을 알아보겠습니다. ROOT 사용자 접속 MariadDB를 관리와 사용자를 만들고 제거하기 위해 root로 접근해야 합니다. 사용자 관리 루트 사용자로 접속하게되면 모든 설정을 수정하거나 사용자를 관리할 수 있지만 이는 보안적으로 결함이 되기도 합니다. 그래서 일반 사용자를 만들어 특정데이터에 접근을 사용자마다 제한을 두는 편이 좋습니다. 1) 사용자 생성과 권한 부여 (*는 전체를 나타냅니다.) sql > grant 권한종류 on 스키마이름.테이블이름 to 사용자이름@호스트 identified by '비밀번호'; 2) 사용자 삭제 sql > drop use..