티스토리 뷰
-- 임의의 나라 입력
INSERT INTO country (country_name, country_code)
VALUES
('대한민국', 'KR'),
('미국', 'US'),
('일본', 'JP'),
('중국', 'CN'),
('독일', 'DE');
-- shop 40개 생성 e.g.판교 N호, 광화문 N호...
-- customer 5명 생성
-- 임의 이름 브랜드 삽입
INSERT INTO brand (brand_name)
VALUES ('SAMSUNG'),
('APPLE'),
('LG'),
('HP'),
('CANON');
-- 임시 테이블을 이용해서 500건 생성
INSERT INTO goods (brand_id, goods_name)
SELECT
FLOOR(1 + (RAND() * 5)) AS brand_id, -- 1~5 랜덤 브랜드
CONCAT('상품', FLOOR(1 + (RAND() * 80))) AS goods_name -- 상품1~상품80 랜덤 이름
FROM (
SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5
UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10
) t1
CROSS JOIN (
SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5
UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10
) t2
CROSS JOIN (
SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5
) t3
LIMIT 500;

이렇게 더미 데이터를 여러개 생성해보았는데, 성능에 문제가 있으려면 ㅠㅠ
더 많은 데이터가 있어야할거 같네요 구문을 수정해야겠습니다
goods -> 100,500개
customer -> 50,050명
purchase_goods -> 100,500건
- 테이블: goods 10만, customer 5만, purchase_goods 3천만 목표
- 문제: 대량 삽입과 조회 성공
-- 주문내역에서 3-4개를 구매한 상품 이름과 구매한 고객 이름을 출력한다.
SELECT
c.customer_name,
g.goods_name,
pg.quantity
FROM purchase_goods pg
JOIN customer c ON pg.customer_id = c.customer_id
JOIN goods g ON pg.goods_id = g.goods_id
WHERE pg.quantity BETWEEN 3 AND 4;
-- 0.13sec 소요
-- 고객별 집계 같이 추가 작업
SELECT c.customer_name, GROUP_CONCAT(g.goods_name) AS goods_list
FROM purchase_goods pg
JOIN customer c ON pg.customer_id = c.customer_id
JOIN goods g ON pg.goods_id = g.goods_id
WHERE pg.quantity BETWEEN 3 AND 4
GROUP BY c.customer_name;
-- 0.15sec 소요
-- GROUP_CONCAT 때문에 시간이 더 걸릴 수 있음!
'MySQL' 카테고리의 다른 글
| [MySQL] 표준 프로세스대로 개발하기 (3) (0) | 2025.09.03 |
|---|---|
| [MySQL] 표준 프로세스대로 개발하기 (2) (0) | 2025.09.03 |
| [MySQL] 표준 프로세스대로 개발하기 (1) (0) | 2025.09.03 |
| [MySQL] Clustered Index & Non-Clustered Index (0) | 2025.09.03 |
| [MySQL] SQL 문법 (0) | 2025.09.02 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 데이터업로드
- httpcode
- 유에이치스위트
- 컬럼타입변경
- 판교테크원타워맛집
- 시청역숙소
- springboot
- 시청역놀곳
- MAC
- 400에러관리
- 사용자별메뉴
- csv업로드
- 재귀구문
- 500에러관리
- 바디캐싱
- 논클러스터 인덱스
- csv다운로드
- 데이터베이스
- 신사동이자카야
- 디비개발프로세스
- MySQL
- cachedbodyhttpservletrequest
- 권한별메뉴만들기
- 스프링부트
- 유에이치스위트서울스퀘어
- 오리지널팬케이스하우스 판교점
- 오리지널팬케이스하우스
- 디너요리추천
- xcrunerror
- menu만들기
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
글 보관함