본문 바로가기

Programming/MySQL & MariaDB

(10)
[MySQL] Storage Engine (InnoDB vs MyISAM) 생각없이 Engine을 InnoDB만 사용했지 왜 이것을 사용해야 하는지 고민해본 적이 없었다. 하지만 어떠한 Storage Engine을 써야할지 고민할 일이 생겼다. 전문과 로그에 관련된 데이터를 테이블에 적재해야하는데, 전문과 로그의 경우 정규화하기도 애매하고 Key가 상당히 많았다. 대략 300개에 달하는 칼럼이 필요한 상황이였다. 그래서 어떻게 테이블에 적재해야 효율적인지 고민이 필요했다. 또한 InnoDB 테이블에 많은 칼럼을 추가하니 Row size too large. 라는 오류가 발생해서 Engine을 변경하는 방법을 생각하게 되었다. 우선 각 Stroage Engine에 대해 알아보았다. Mysql Storage Engine은 물리적 저장장치에서 데이터를 어떤 식으로 구성하고 읽어올지를 ..
mysql auto_increment 초기화 데이터베이스 테이블 데이터를 모두 삭제한 후인덱스 자동증가를 다시 1로 초기화하려면 다음과 같은 명령어 ALTER TABLE tablename AUTO_INCREMENT=1
(펌) DECODE와 CASE 함수 DECODE와 CASE 함수는 SQL 문장에서 조건에 해당하는 값을 추출하고자 할 때 주로 사용한다DECODE- DECODE 함수는 조건에 따라 데이터를 다른 값이나 컬럼값으로 추출 할 수 있다.- DECODE(VALUE, IF1, THEN1, IF2, THEN2...) 형태로 사용 할 수 있다.- VALUE 값이 IF1일 경우에 THEN1 값을 반환하고, VALUE 값이 IF2일 경우에는 THEN2 값을 반환한다.- DECODE 함수 안에 DECODE함수를 중첩으로 사용 할 수 있다. 아래는 DECODE 함수의 일반적인 예제이다. ?12345678910111213-- 부서번호가 10이면 ACCOUNTING, 20이면 RESEARCH, 30이면 SALES-- 나머지는 OPERATIONS를 출력하는 예제S..
(펌) MySQL 쓰면서 하지 말아야 할 것 *MySQL 쓰면서 하지 말아야 할 것 17가지*권장사항이다. 이것을 이해하면 당신의 어플리케이션이 더 나은 성능을 발휘할 것이다.다만 이것이 사람의 실력을 판단하는 척도로 사용되서는 안 될 것이다. 작게 생각하기- 조만간 규모가 커질거라면 MySQL ecosystem을 봐야된다. - 그리고 캐싱 빡시게 안 하는 메이저 웹사이트는 없다. - develooper.com의 Hansen PT랑 Ilia 튜토리얼 볼 것 - 처음부터 확장 가능하게 아키텍처 잘 쪼개놔야된다. - 복제랑 파티셔닝 어떻게 할지 미리 계획 세워놔라. - 파일 기반 세션 좀 쓰지마 -_- - 그렇다고 너무 쓸데없이 크게 생각하지도 말 것 - 특히 성능하고 확장성 구분 못 하면 난감함 EXPLAIN 안 써보기- SELECT 앞에 EXPLA..
Sleep Process 죽이기 MySQL 프로세스 리스트 보기에는 다음의 두가지 방법을 사용 [aokio]$ mysqladmin processlist mysql> show processlist; +---------+------+-----------+-------+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +---------+------+-----------+-------+---------+------+-------+------------------+ | 1602724 | root | localhost | test | Sleep | 70 | | NULL | | 1603286 | root | loc..
원격 DB 서버 접근하는 방법 ssh나 여러 툴을 이용하여 원격 디비 서버에 접근할 수도 있지만,터미널에서 명령어를 사용하여 접근이 가능하다. mysql -h [host ip] -u [user id] -p 위와 같은 명령어를 입력하고 해당 아이디에 대한 비밀번호를 입력하면 DB에 접속이 가능하다.
[MySQL/MariaDB] CONCAT 함수 CONCAT 함수 MySQL에서는 CONCAT 함수를 이용해 인자들을 하나의 문자열로 합칠 수 있다. 예를 들어 title LIKE CONCAT('%', keyword, '%'} 이라면,실제 명령어는 title LIKE CONCAT "%keyword%" 가 된다
[MySQL / MariaDB] 데이터형 및 크기 TINYINT[(M)] [UNSIGNED] [ZEROFILL]- 범위 : -128 에서 127 (UNSIGNED 일 경우 0 에 255) SMALLINT[(M)] [UNSIGNED] [ZEROFILL]- 범위 : -32768 에서 32767 (UNSIGNED 일 경우 0 에 65535) MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]- 범위 : -8388608 에서 8388607 (UNSIGNED 일 경우 0 에 16777215) INT[(M)] [UNSIGNED] [ZEROFILL]- 범위 : -2147483648 에서 2147483647 (UNSIGNED 일 경우 0 에 4294967295)- 주의 : 모든 연산은 “signed BIGINT” 로 이루어진다. 따라서 더하기 곱하기 등..