본문 바로가기

MySQL

DATE_FORMAT 검색의 위험성 SELECT idx FROM t_a WHERE DATE_FORMAT(reg_date, '%Y%m%d') = '2021-03-02' GROUP BY idx; t_a 테이블에 row수는 7천만개가 넘은 상태였다. 어마어마한 row수를 가진 테이블에 위 쿼리를 실행하니 쿼리문이 영원히(!) 실행 되다시피 했다. 그 이유는 WHERE 절..! 'reg_date' 컬럼의 포맷은 YYYY-MM-DD HH:MM:SS 해당 포맷을 변경 후 위 쿼리와 같이 검색을 하게되니 'reg_date' 컬럼을 Like 검색으로 변환되어 모든 컬럼을 샅샅이 조사(?)하기 시작한거 같다. row수가 얼마 안된다면 모르겠지만 row수가 많다면 아래와 같이 검색을 하자..! SELECT idx FROM t_a WHERE reg_date .. 더보기
WHERE QUERY Performance Tuning 출처: https://link2me.tistory.com/544 WHERE 절은 "테이블내의 모든 행을 검색하는 대신 검색 조건을 지정하여 사용자가 원하는 행들만 검색하는 기능"이다. WHERE 조건식은 단일 조건식과 복수 조건식이 있다. 연산자 의 미 = 같다 WHERE 품목 = '구두' ; > 보다 크다 >= 보다 크거나 같다 더보기
영문, 숫자, 한글 순으로 데이터 출력 쿼리문 쿼리문에서 아래의 쿼리문을 넣으면 영문, 숫자, 한글로 뒤섞여있는 필드가 영문 -> 숫자 -> 한글 순으로 데이터를 뽑아져 나오는 것을 볼 수 있다. 예) "SELECT * FROM 테이블 ORDER BY (CASE WHEN '필드1' REGEXP '[A-Z]' THEN '필드1' REGEXP '[0-9]' ELSE '필드1' NOT REGEXP '[A-Z]' END), '필드1' ASC(또는 DESC)" 더보기
integer 필드에 ''를 넣어도 에러가 안나게 하는 방법 (centOS기준) 출처URL: http://bizadmin.tistory.com/entry/Mysql-NOT-NULL%EC%97%90-%EA%B0%92%EC%9D%84-%EB%84%A3%EC%A7%80-%EC%95%8A%EC%95%84%EB%8F%84-%EC%97%90%EB%9F%AC%EA%B0%80-%EC%95%88%EB%82%9C%EB%8B%A4 Mysql strict mode와 데이타 타입이 틀려도 에러가 안나게 설정하는 방법 MySQL 2013.12.10 11:33 Posted by 불가사리 bluemount Mysql NOT NULL에 값을 넣지 않아도 에러가 안난다 내가 많이 써 본 MSSQL 같은 경우 컬럼에 대해 NOT NULL 로 설정 하면반드시 값을 넣어 줘야 에러가 나지 않는다. 그런데 가만 보니 어떤.. 더보기