MySQL
-
MySQL. 'Select tables optimized away' vs 'Using index'개발 기록 2023. 6. 30. 18:34
쿼리를 짜다 보면 마지막 seq를 가져와야 되는 경우가 생긴다. 이 경우 보통 2가지 경우를 사용한다. -- seq는 pk다. SELECT MAX(seq) FROM abc; SELECT seq FROM abc ORDER BY seq DESC LIMIT 1; seq가 pk 이기 때문에 둘다 빠르다. 하지만 개발자라면 무엇이 더 빠를지 고민이 생길 것이다. 그래서 explain을 사용해본다. EXPLAIN SELECT MAX(seq) FROM abc; -- => Extra: Select tables optimized away EXPLAIN SELECT seq FROM abc ORDER BY seq DESC LIMIT 1; -- => Extra: Using index 그러면 Extra의 설명에 위와 같은 메세..
-
MySQL. random string(alphabet + number)개발 기록 2023. 5. 10. 18:13
MySQL / Mariadb 에서 내장함수를 사용하여 무작위로 문자열을 생성하는 방법에 대한 기록이다. 랜덤한 문자열을 주는 내장 함수 16진수로 표현된 문자열을 준다. (랜덤 문자열을 생성하기 위해서 RAND()함수를 추가한다.) *16진수로 표현된 문자열을 준다는 말은 모든 알파벳을 주지 않는다는 말이다. (0123456789abcdef) SHA1(RAND()) => 40자리 MD5(RAND()) => 32자리 HEX(RAND()*0xFFFFFFFF) => F의 갯수만큼 UUID() => 4개 하이픈(-) 포함 36자리 기타 다른 것들도 있다. 모든 알파벳과 숫자를 포함하는 랜덤 문자열을 생성하려면 어떻게 해야할까? 여러가지 방법이 있겠지만 그 중에 내장함수중에 TO_BASE64() 라는 것이 있다...