2024/07 4

[MySQL] 페이징 쿼리 작성하기

페이징 쿼리?데이터 전체를 조회하지 않고, 원하는 데이터만 전체 데이터에서 부분적으로 나눠서 데이터를 조회 및 처리하는 방법DB 및 Application Server의 Resource(CPU, Memory, Netwrok…) 사용 효율이 증가!Application 단의 처리 시간이 단축되는 효과! limit, offset을 사용하는 경우 오히려 DBMS 서버에 더 많은 부하를 발생시킨다.일반적으로 DB 서버에서 제공하는 limit, offset 구문을 사용하는 경우가 대다수!limit, offset을 사용하는 경우 오히려 DBMS 서버에 더 많은 부하를 발생시킨다.select * from table limit 500 offset 0;select * from table limit 500 offset 500..

[MySQL] count(*) 과 count(distinct)

많은 사람들이 select * 보다 select count(*) 이 더 빠를 것으로 생각합니다. 🤨그런데, 일반적으로 둘의 성능이 비슷하게 측정되는 경우가 훨씬 많다고 합니다.왜냐하면, 서비스 구현 요건상 select * 쿼리는 limit 조건이 있기 때문입니다.반면에 select count(*) 쿼리는 limit 조건 없이 실행되는것이 일반적 입니다…! 그리고 요즘 orm을 대부분 사용하는데, orm을 사용하다보면 단순히 레코드 건수를 확인하는 쿼리를 작성했을뿐인데,부하가 훨씬 높은 select count(distinct(id)) 같은 쿼리를 실행하는 경우가 있습니다. select count(*)과 select * 성능아래의 쿼리의 경우에는 2개의 쿼리는 동일한 성능을 내게 됩니다.select cou..

[MySQL] VARCHAR vs TEXT

이번에는 VARCHAR 와 TEXT에 대해서 알아봅시다! 🙌 공통점문자열 속성 값을 저장최대 65,535 bytes 까지 저장 가능 차이점VARHCAR 타입 컬럼에는 지정된 글자 수 만큼만 데이터 저장 가능VARCHAR(100) → 100글자 이하만 저장 가능TEXT 타입 컬럼은 인덱스 생성 시 반드시 Prefix 길이 지정 필요CREATE INDEX ix_text_column ON table (text_column(100));TEXT 타입 컬럼은 표현식으로만 디폴트 값 지정 가능CREATE TABLE tb1 (col TEXT DEFAULE ‘abc’) → 에러 발생CREATE TABLE tb1 (col1 TEXT DEFAULT (’abc’)) → 생성 가능 일반적인 사용 형태길이가 짧으면 VARCHA..

[MySQL] CHAR vs VARCHAR

제가 개발을 하면서 DB에 가장 많이 사용하는 타입이 CHAR, VARCHAR 입니다.그런데 CHAR와 VARCHAR의 공통점과 차이점에 대해서 정확하게 알지 못한 상태로가변이면 VARCHAR, 고정이면 CHAR를 사용하면 된다! 정도로 이해하고 사용했습니다.더 이상 이렇게 살면 안될거 같아 정리해야겠다는 마음이 들어서 포스팅을 작성하게 되었습니다. CHAR의 VARCHAR 간단 소개먼저 간단하게 공통점과 차이점에 대해서 정리해보겠습니다!공통점문자열 저장용 컬럼최대 저장 가능 문자 길이 명시 가능! (byte 수가 아님!!)CHAR(10), VARCHAR(10)은 모두 10글자 까지 저장 가능차이점CHAR는 값의 실제 크기에 관계없이 고정된 공간 할당VARCHAR는 값의 실제 크기에 맞게 공간 할당최대 ..