[Mysql] 테스트 > DB/SQLite

본문 바로가기

사이트 내 전체검색

DB/SQLite

[Mysql] 테스트

작성일 23-01-07 21:17

페이지 정보

작성자sbLAB 조회 14,927회 댓글 0건

본문

[테스트환경]

테이블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

0e07d253c07ecf63af2791c930c802f6_1673096619_4996.jpg
 

[단순 질의 테스트]

 
 # 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. */
0e07d253c07ecf63af2791c930c802f6_1673098195_4578.jpg

  # 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  

https://velog.io/@emplam27/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EA%B7%B8%EB%A6%BC%EC%9C%BC%EB%A1%9C-%EC%95%8C%EC%95%84%EB%B3%B4%EB%8A%94-B-Tree#b-tree 


Tumblr MySQL 

https://gywn.net/2012/05/how_to_shard_big_data_in_tumblr/ 

댓글목록

등록된 댓글이 없습니다.

Copyright © 소유하신 도메인. All rights reserved.
PC 버전으로 보기