[Mysql] 테스트
페이지 정보
작성자 sbLAB 댓글 0건 조회 9,174회 작성일 23-01-07 21:17본문
[테스트환경]
테이블1) mytable 컬럼수 13개, 행수 1220만행
테이블2) yourtable 컬럼수 13개, 행수 1250만행
CREATE TABLE `mytable` (
`id` MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`phone` VARCHAR(100) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`email` VARCHAR(255) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`address` VARCHAR(255) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`postalZip` VARCHAR(10) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`region` VARCHAR(50) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`country` VARCHAR(100) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`list` VARCHAR(255) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`text` TEXT NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`numberrange` MEDIUMINT(9) NULL DEFAULT NULL,
`currency` VARCHAR(100) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
`alphanumeric` VARCHAR(255) NULL DEFAULT NULL COLLATE 'latin1_swedish_ci',
PRIMARY KEY (`id`) USING BTREE
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=12218141;
파일사이즈 각 테이블 당 약 3.6G
[단순 질의 테스트]
# ID 질의(속도저하 없음)
SELECT * FROM mytable WHERE id=10000000;
/* Duration for 1 query: 0.000 sec. */
# 커버링 인덱스
(id 사용 - 속도저하 없음, id(또는 유저코드(고유값) index Key) 범위로 접근하면 속도저하 없으므로 id(key) 사용
또는 특정 segment 설계 구분자 사용)
SELECT A.*
FROM (SELECT id FROM yourtable WHERE id BETWEEN 15000000 AND 15002000) AS B, yourtable AS A
WHERE B.id = A.id;
/* Duration for 1 query: 0.000 sec. */
(Limit 지점 뒤로 갈수록 속도저하 ↑↑↑↑) - 테스트 목적 쿼리(실사용No!)
select A.*
from (SELECT id FROM mytable LIMIT 700000, 200) AS B, mytable AS A
WHERE B.id = A.id;
/* Duration for 1 query: 0.531 sec. */

# 2개 테이블 id 조인 + id 질의 - (속도저하 없음)
SELECT * FROM yourtable AS B, mytable AS A
WHERE B.id = A.id AND B.id=10000000;
/* Duration for 1 query: 0.000 sec. */
#COUNT(*) - 상당 시간 지연
SELECT COUNT(*) FROM mytable;
/* Duration for 1 query: 25.625 sec. */
EXPLAIN(Select_type/Type/Extra)
https://mariadb.com/kb/en/explain/
B-Tree
Tumblr MySQL
댓글목록
등록된 댓글이 없습니다.