본문 바로가기

MySQL에 해당하는 글들

22 Articles matched
목록이 없습니다.
[MySQL] EXPLAIN 사용하여 쿼리 최적화 EXPLAIN 명령문은 MySQL이 SELECT 명령문을 수행하는 방법에 대해 정보를 얻기 위한 수단이다. EXPLAIN 테이블명 은 DESCRIBE 테이블명 또는 SHOW COLUMS FROM 테이블명 과 같은 의미이다. EXPLAIN은 SELECT 명령문에서 사용된 각 테이블 정보를 리턴하는데 MySQL이 쿼리를 처리하는 동안 읽을 수 있도록 결과물 안에 테이블들이 목록으로 정리 된다. EXTENDED 키워드가 사용되면, EXPLAIN은 EXPLAIN 명령문 다음에 SHOW WARNINGS 명령문을 입력해서 볼 수 있는 기타 정보를 리턴한다. 이 정보는 옵티마이저가 SELECT 명령문에 있는 컬럼 이름과 테이블을 얼마나 많이 검증을 하였는지를 보여주며, SELECT는 최적화 과정에 관한 어플리케이션 ..
[MySQL] where 1=1 의미 / 사용하는 이유 운영서버에 올라가있는 쿼리문을 살펴보면 where 조건 절에 1=1 이 많이 붙어있어요. 처음에는 이게 뭔지 이걸 왜 쓰는지 이해를 못했는데 하다보니까 왜 쓰는지 알게 되서 정리하려고 해요. 1=1 ? 1=1 이라는건 항상 참이라는걸 의미해요. 글면 왜 이런 항상 참이라는 조건을 쓰냐 ? 뒤에 붙는 조건들이 고정적으로 붙지 않을 때 즉, 동적으로 조건절을 붙이고 싶을 때 아주 유용하게 사용되요 에를들면 검색기능이 있어요 사용자로부터 입력받은 키워드가 존재할 때에만 뒤에 조건절을 붙이고 싶을 때 다음과 같이 사용되요 ( 제 상황은 Spring Framework기반 mybatis를 사용하는 상황이에요 ) 1 2 3 4 5 SELECT * FROM TB_TEST WHERE 1=1 Colored by Color..
[MySQL] 1093 에러(Error) 처리 MySQL의 쿼리문을 실행하던 중에 너무 간단한 쿼리문임에도 불구하고 등장한 에러.. 안되겠다 싶어서 에러를 바로 정리해보려고 해요~ 1. 원인 MySQL의 1093에러의 원인은 간단해요 MySQL은 Oracle과 달리 UPDATE나 DELETE 쿼리문을 수행할 때 자기 자신의 테이블의 데이터를 바로 사용하지 못하게 되어 있어요 그래서 1093에러를 출력해줌으로써 그렇게 사용하지 말라고 알려주는 거에요 DELETEFROM tb_userWHERE id IN (SELECT DISTINCT a.id ext_id FROM tb_user a JOIN tb_user b ON a.user_name = b.user_name JOIN tb_history d ON d.id = a.history_id WHERE a.hist..
[MySQL] SYSDATE() 와 NOW()의 차이 오늘은 MySQL의 내부적으로 내장되어 있는 함수(Built-in함수)를 정리해보려고 해요 MySQL의 Built-in 함수 중에는 현재 날짜 및 시간 정보를 반환하는 함수가 SYSDATE()와 NOW() 이렇게 2개가 있어요 SYSDATE()와 NOW()의 작동 방식은 쿼리의 실행 계획에 상당한 영향을 미칠 정도로 영향력이 커요 1. MySQL 메뉴얼 SYSDATE() returns the time at which it executes.This differs from the behavior for NOW(), which returns a constant time that indicates the time at which the statement began to execute.(Within a store..
[MySQL] Storage Engine ( MyISAM과 InnoDB ) MySQL은 다양한 종류의 스토리지 엔진들(Storage Engines 또는 Database Engines)을 가지고 있는데요 우선 스토리지 엔진이라는 것에 대해 정리를 하고 다음으로 대표적인 스토리지 엔진인 InnoDB와 MyISAM에 대해 정리하려고 해요 1. 스토리지 엔진(Storage Engine) DB(Database)에 데이터를 넣고 가져오거나 삭제 혹은 수정을 할 때 사용하는 소프트웨어 컴포넌트에요. 이 엔진은 DB마다 사용되는 것이 다르고 그 내용 또한 조금씩 달라요 여러 DB중에 정리할 MySQL의 스토리지 엔진은 데이터를 디스크 저장장치에 넣거나 읽어오는 부분에 대해 엔진을 조작할 때 DBMS(Database Management System) 고유의 사용자 인터페이스를 사용하는 방법과 ..
[MySQL] mysql 계정 생성 명령어 정리 1. MySQL 명령어 정리 - 계정생성 명령어 우선 터미널 혹은 명령 프롬프트에서 다음 명령어로 MySQL의 root 계정에 접속해요 1mysql -u root -pcs 그리고 grant 명령어를 사용해서 계정을 생성해줘요 1grant all privileges on 'DB이름'.'Table이름' to '생성할계정이름'@'접근제한영역' indentified by '비밀번호';cs 접근 제한 영역에는 다음과 같은 내용이 들어갈 수 있어요! ● localhost : 자신의 컴퓨터에서만 접근 허용● 특정IP주소 : 특정 IP 주소에 해당하는 호스트에서만 접근 허용● % : 모든 접근 허용