Sky Archive

DBMS/MySQL 3

[MySQL] 페이징 처리 limit 사용시 COUNT(*) 쉽게 하기 - SQL_CALC_FOUND_ROWS & FOUND_ROWS

SQL_CALC_FOUND_ROWS & FOUND_ROWS 페이징 처리를 위해 limit 사용 시 전체 게시물의 수를 알기 위해 쿼리를 한번 더 해야 한다. 1. 해당 조건을 만족하는 게시물의 전체 수 조회 2. 그 페이지에서 보여줄 내용 조회 여기서 조건이 복잡하다면 MySQL에서 제공하는 function을 사용해 보자. SELECT 최상단에 SQL_CALC_FOUND_ROWS 라는 옵션만 주고 FOUND_ROWS() 를 사용하면 된다. 쿼리는 마찬가지로 두번이지만 두 번째 쿼리는 훨씬 빠르다. mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_enchovy WHERE id > 100 LIMIT 10; mysql> SELECT FOUND_ROWS(); 이렇게 하면 첫번째 ..

DBMS/MySQL 2021.10.20

[MySQL] smallint? tinyint? int의 종류와 범위

int의 종류와 범위, 저장공간은 아래와 표를 참고하세요.😊 MySQL, SQL Server, Azure SQL Database, Parallel Data Warehouse 등 에서 사용되는 데이터 타입입니다. Data type Range Storage bigint -2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807) 8 Bytes int -2^31 (-2,147,483,648) to 2^31-1 (2,147,483,647) 4 Bytes smallint -2^15 (-32,768) to 2^15-1 (32,767) 2 Bytes tinyint 0 to 255 1 Byte 출처 https://docs.microsoft.com/k..

DBMS/MySQL 2021.07.06

[MySQL] 대소문자 구분하여 비교 및 검색 (BINARY)

MySQL은 비교나 검색을 수행할 때 기본적으로 대소문자 구분 없이 비교 및 검색이 가능하다. 이에 따라 아이디나 패스워드 등 대소문자가 엄격히 구분되어야 하는 경우엔 서로 다른 값으로 인식되도록 처리가 필요하다. 예시 1 - SELECT절에서 대소문자 비교 SELECT 'X' = 'x'; 실행결과 - 대문자와 소문자의 비교 결과가 true이다. 1 예시 2 - WHERE절에서 대소문자 비교 SELECT 'ID' AS ID FROM MEMBER WHERE ID = 'id' 실행결과 - 소문자로 검색해도 검색결과가 도출된다. ID 해결 방안 - BINARY BINARY 문자열 타입은 문자가 아닌 바이트를 기준으로 비교나 검색을 할 수 있다. 방법 1. 테이블 생성 시 해당 필드에 BINARY 타입 사용 M..

DBMS/MySQL 2021.07.01