본문 바로가기

MySQL

(23)
[MYSQL] 인덱스 MYSQL 쿼리속도가 느릴때 [상세 내역 보기] 조회 쿼리 앞에 explain select * from ~ 으로 조회시 extra설명에 "Using where; Using join buffer (Block Nested Loop)" 으로 나왔을 경우 → 인덱스가 없거나, 타입이 ALL일때 [ 인덱스 설정 ] SHOW INDEX FROM table; ALTER TABLE table명 ADD INDEX "인덱스이름" ("인덱스 설정할 컬럼명"); SHOW INDEX FROM table; ( ※ 테이블 구조 파악 후 적절한 인덱스를 설정해야하며, 데이터가 많을 경우 인덱스 설정시 많은 시간이 소요되므로 실DB에 적용시 새벽시간이나, 사이트 중단 후 사용 ) (※이미 인덱스를 실행중일 경우 중간에 끄지말고 기다려..
[MYSQL] COLLATE utf8_unicode_ci Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=' where 이후 컬럼에 -- COLLATE utf8_unicode_ci 뒤에 삽입
is not null 인덱스 타지않는 절 대체 is not null → > '' (공백보다 크다)
[MYSQL] 당월1일, 당월말일 조회 당월1일 SELECT DATE_FORMAT(LAST_DAY(NOW() - interval 1 month) + interval 1 DAY,'%Y%m%d') 당월말일 SELECT date_format( LAST_DAY(NOW() - interval 0 month) , '%Y%m%d')
같은 테이블 정보 잘못 입력 ※ 테이블에 col1자리에 col2를 잘못 입력했을경우 같은테이블 내에서 col1, col2를 변경하기 위해서 UPDATE table_1 a, (SELECT * FROM table_1) as b SET a.col1= b.col2 , a.col2= b.col1 WHERE a.col_seqid= b.col_seqid ( 검색조건 상세히 걸어서 테스트 후 전체 반영)
SHA2 SHA2 - 일방향 ( 해쉬함수 이용 ) SELECT SHA2('0000',256) 참고 : 암호화는 가능하지만 복호화는 불가능하다
[SQL] java.sql.SQLException: Parameter index out of range... SQL 에러 java.sql.SQLException: Parameter index out of range (3 > number of parameters, which is 2) 원인 : 쿼리문에 따움표가 들어갔을 경우
프로시저 상태값 확인 SHOW PROCEDURE STATUS;
[MYSQL] 프로시저 작성2( PROCEDURE ) 하나의 프로시저 내에서 2개의 조회조건으로 커서2개 실행 DROP PROCEDURE IF EXISTS '프로시저명'; CREATE PROCEDURE `'프로시저명'`() BEGIN BEGIN -- 두번째 커서 시작 DECLARE done INT DEFAULT FALSE; DECLARE 선언할 변수 INT DEFAULT 0; DECLARE cursor1 CURSOR FOR select * from test (조회 조건) DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN cursor1; my_loop: LOOP FETCH cursor1 INTO 선언할 변수 ; SET v_count = v_count +1 ; IF done THEN LEAVE my_l..
[MYSQL] 프로시저 작성( PROCEDURE ) 프로시저 작성 Example DROP PROCEDURE IF EXISTS test_procedure; -- 존재하는 테이블이 있을경우 삭제 CREATE PROCEDURE `test_procedure`() -- 생성할 프로시저 명 BEGIN DECLARE done INTEGER DEFAULT 0; -- 반복문 사용 0 - Default 선언 DECLARE v_count INT DEFAULT 0; -- 각행별 조회한 커서에서 사용할 변수 선언 DECLARE v_id BIGINT(10); DECLARE v_name varchar(20); DECLARE cursor1 CURSOR FOR -- 시작 CURSOR select id,name from test_table -- 조회할 커서 (각 row별 실행)(※ 순서..