모르면 손발이 고생한다는 말이 있는데, 진짜 DB 울고 싶네요 ㅠ.ㅠ
글쓴이: emptynote / 작성시간: 금, 2019/05/10 - 12:28오후
모르면 손발이 고생한다는 말이 있습니다.
DB 에서 date type 을 다루는 방법은 여러가지가 있을 수 있습니다.
아무 생각없이 테이블은 DATETIME 으로 지정하고 자바에서는 java.sql.Timestamp 을 사용했는데
아래 글은 참 여러가지로 생각을 하게 하네요.
모든 경우는 아니더라도 검색 조건인 경우 만큼은 long 으로 바꾸어야 하겠네요.
아...나의 손발아 미안하다 ㅠ.ㅠ
------------------- 부분 인용
"MYSQL 에서 DATETIME 형식의 데이터를 고속으로 검색하는 방법" 참고 주소 : https://tokyogoose.tistory.com/304
INT 형식으로 준 쿼리 조건이 데이터 검색 속도가 압도적으로 빠른 결과
Forums:
...
Mysql이 버전이 얼마고 테이블에 데이터가 몇 개 있고 인덱스는 걸려있는지 없는지 아무런 정보도 없이 그냥 "내 컴퓨터에서 해보니까 A가 B보다 x배 빠르더라" 정도의 얘기로 보이는데요.
직접 돌려봐서 자신의 상황에도 마찬가지인가 확인하지 않는 한, 별 의미없는 얘기로 보입니다.
Premature optimization is the root of all evil...
[냉무] 저는 DB 초보입니다. 바람이 부는 대로 흔들리는 갈대입니다. ㅠ.ㅠ
저는 DB 초보입니다.
바람이 부는 대로 흔들리는 갈대입니다. ㅠ.ㅠ
DB TIMESTAMP 에 대해서...
제가 글을 쓰기전에 증명안된 한가지 가설을 세웠습니다.
그것은 DB 에서 실질적으로 long 타입으로 저장되어 TIMESTAMP 을 다룰거라는 생각입니다.
long 이 검색이 빠르다 이런 생각을 가진것은 이 가설에 기초 합니다.
왜냐하면 날짜 형식의 문자열을 long 으로 변환하여 실질적으로 처리를 하기때문에
변환 과정이 있기때문에 더 느리다 라고 생각하기때문입니다.
그래서 한번 찾아 보았는데 아래 참고 주소를 보시면 TIMESTAMP 는
MySQL 5.6.4 이전 버전에서는 4 byte
MySQL 5.6.4 이후 버전에서는 4 byte + fractional seconds storage 라고 하네요.
하여 저는 변환 과정이 더 있기때문에 long 혹은 int 로 으로 직접 검색하는 것이 더 빠르다 라고 생각하기에
int 형이 더 빠르다라고 주장한 분의 실험을 신뢰합니다.
제가 이렇게 생각한다고 해도 직접 실험을 한것이 아니고
무엇보다도 유지 보수할때 쿼리문 직접 수행하여 결과를 볼때가 많은데
date type 을 long 혹은 int 로 할 경우 보기 어렵습니다.
본문 글에서 바꾸겠다고 말했지만 유지 보수 비용을 생각해야 해서 일단은 보류중입니다.
------------------------ 부분 인용
https://dev.mysql.com/doc/refman/8.0/en/storage-requirements.html
Data Type Storage Required Before MySQL 5.6.4 Storage Required as of MySQL 5.6.4
TIMESTAMP 4 bytes 4 bytes + fractional seconds storage
일단은 구현부터, 최적화는 나중에요.
일단은 구현부터, 최적화는 나중에요.
디비마다 최적화가 다를텐데... 일반적인 방법으로 구현부터 하는게 중요할 거고,
자주 사용하는 코드는 캐싱을 하는 방법도 있겠죠.
님 일관성이 오집니다. 님 글 보는데 은근 잼있습니다
님 일관성이 오집니다. 님 글 보는데 은근 잼있습니다..ㅋㅋ
유튜브 크리에이터 함 해보심이 어떨런지요.
오 나의 삽질기.. 오 나의 실패기..
아니면 음.. 개떡같은 컴퓨터 1탄.
kldp 에서는 인기 못 얻어도 유튜브에서는 인기 짱 드실지 누가 알아요..
저도 나중에 시간나면 .. 개떡같은 xxx 시리즈할까 해요 ㅋㅋㅋ
어제/오늘 버그랑 씨름하냐고 아주 개빡쳤네요. ㅎㅎ
세상은 오픈소스 오픈소스 주창하는데..
오픈소스랑 함께하는 개빡침 이야기 1화... 뭐 이런거? ㅋㅋ
아휴 진짜 욕이 그냥.. 까방권 때문에 말을 못할 뿐이지..
저는 나중에 시간 나면 오픈소스 개빡침 시리즈로 유튜브에 함 올려보려고요.ㅋㅋㅋ