๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐‘†๐‘ข๐‘›๐‘ โ„Ž๐‘–๐‘›๐‘’ ๐‘Ž๐‘“๐‘ก๐‘’๐‘Ÿ ๐‘Ÿ๐‘Ž๐‘–๐‘›โœง

[Spring] ์„ฑ๋Šฅ ์ตœ์ ํ™” 3ํŽธ - ์ธ๋ฑ์Šค ํ™œ์šฉํ•˜๊ธฐ ๋ณธ๋ฌธ

๐—ฃ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ด๐Ÿ’ป/๐’๐ฉ๐ซ๐ข๐ง๐ 

[Spring] ์„ฑ๋Šฅ ์ตœ์ ํ™” 3ํŽธ - ์ธ๋ฑ์Šค ํ™œ์šฉํ•˜๊ธฐ

๐ŸคRyusun๐Ÿค 2024. 3. 15. 08:30

์ธ๋ฑ์Šค

  • ํ…Œ์ด๋ธ”์˜ ๋™์ž‘ ์†๋„๋ฅผ ๋†’์—ฌ์ฃผ๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ
  •  ๋ฐ์ดํ„ฐ์˜ ์œ„์น˜๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์•„์ค€๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ์ฑ…์˜ ์ฐพ์•„๋ณด๊ธฐ๊ฐ€ ์žˆ์„ ๋•Œ ํŠน์ • ์ฃผ์ œ๋‚˜ ๋‹จ์–ด๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์ฑ…์˜ ๋ชจ๋“  ํŽ˜์ด์ง€๋ฅผ ์ฐพ์•„๋ณด์ง€ ์•Š๊ณ , ์ฐพ์•„๋ณด๊ธฐ์—์„œ ํ•ด๋‹น ๋‹จ์–ด๋ฅผ ์ฐพ์•„ ๋ฐ”๋กœ ํ•ด๋‹น ํŽ˜์ด์ง€๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๋“ฏ์ด, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ๋ฑ์Šค๋„ ๋น„์Šทํ•œ ์—ญํ• ์„ ํ•œ๋‹ค.

 

์ธ๋ฑ์Šค์˜ ์žฅ์  & ํšจ๊ณผ

  1. ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ ํ–ฅ์ƒ: WHERE ์ ˆ์—์„œ ํŠน์ • ์นผ๋Ÿผ์„ ์ด์šฉํ•œ ์กฐ๊ฑด ๊ฒ€์ƒ‰์ด ๋นจ๋ผ์ง„๋‹ค. ์ธ๋ฑ์Šค๊ฐ€ ์—†์œผ๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—”์ง„์€ ํ…Œ์ด๋ธ” ์ „์ฒด๋ฅผ ์Šค์บ”ํ•˜์—ฌ ์กฐ๊ฑด์— ๋งž๋Š” ํ–‰์„ ์ฐพ์•„์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ธ๋ฑ์Šค๊ฐ€ ์žˆ๋‹ค๋ฉด ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋” ๋น ๋ฅด๊ฒŒ ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  2. ์กฐ์ธ ์„ฑ๋Šฅ ํ–ฅ์ƒ: JOIN ์ ˆ์—์„œ ์กฐ์ธํ•  ๋•Œ ์ธ๋ฑ์Šค๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—”์ง„์€ ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ์กฐ์ธ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ๋‘ ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๋งค์นญ๋˜๋Š” ํ–‰์„ ํšจ์œจ์ ์œผ๋กœ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค.
  3. ์ •๋ ฌ ๋ฐ ๊ทธ๋ฃนํ™” ์„ฑ๋Šฅ ํ–ฅ์ƒ: ์ธ๋ฑ์Šค๋Š” ์ •๋ ฌ ๋ฐ ๊ทธ๋ฃนํ™” ์ž‘์—…์—๋„ ๋„์›€์„ ์ค€๋‹ค. ํŠนํžˆ, **ORDER BY**๋‚˜ GROUP BY ์ ˆ์—์„œ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ •๋ ฌ์ด๋‚˜ ๊ทธ๋ฃนํ™” ์ž‘์—…์ด ๋นจ๋ผ์ง„๋‹ค.
  4. ๋ฒ”์œ„ ๊ฒ€์ƒ‰ ์ตœ์ ํ™”: ์ผ๋ถ€ ์ธ๋ฑ์Šค๋Š” ๋ฒ”์œ„ ๊ฒ€์ƒ‰์— ํŠนํžˆ ์œ ์šฉํ•˜๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‚ ์งœ ๋ฒ”์œ„๋‚˜ ์ˆซ์ž ๋ฒ”์œ„์— ๋Œ€ํ•œ ๊ฒ€์ƒ‰์—์„œ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํšจ์œจ์ ์œผ๋กœ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

 



์šฐ์„  ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด ๋”๋ฏธ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด์ค˜์•ผ ํ•œ๋‹ค.

์•„๋ž˜์˜ ์‚ฌ์ดํŠธ์— ๊ฐ€๋ฉด ์‰ฝ๊ฒŒ ๋”๋ฏธ๋ฐ์ดํ„ฐ ์ƒ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๋งŽ์€ ๋”๋ฏธ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„์ˆ˜๋ก ์„ฑ๋Šฅ ๋น„๊ต๊ฐ€ ๋” ์ž˜๋œ๋‹ค.

 

๋”๋ฏธ ๋ฐ์ดํ„ฐ ์ƒ์„ฑํ•˜๋Š” ์‚ฌ์ดํŠธ

https://www.mockaroo.com

 

์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ˜„์žฌ ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜๋ฅผ ์•Œ์ˆ˜์žˆ๋‹ค.

SELECT count(*) FROM ํ…Œ์ด๋ธ”๋ช… ;

ํ•„์ž๋Š” ์•ฝ 6์ฒœ๊ฐœ ์ •๋„ ๋งŒ๋“ค์—ˆ๋‹ค.

 

์ด์ œ ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•ด ๋ณด์ž!

 

1. ์ปฌ๋Ÿผ ๋ถ„์„ํ•˜๊ธฐ

ํšจ๊ณผ์ ์ธ ์ธ๋ฑ์Šค ์ƒ์„ฑํ•˜๋ ค๋ฉด ์–ด๋–ค ์ปฌ๋Ÿผ์œผ๋กœ ์ธ๋ฑ์Šค๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ• ์ง€ ๋จผ์ € ๋ถ„์„ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. 

  • ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ์ž‘์„ฑํ•œ ์ฟผ๋ฆฌ ๋ถ„์„ํ•˜๊ธฐ
  • where, join ๋“ฑ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ปฌ๋Ÿผ๋“ค ๋ถ„์„ํ•˜๊ธฐ
 

ํ•˜์ง€๋งŒ where์ ˆ, join์ ˆ์— ์นผ๋Ÿผ์ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€๋ผ๋ฉด ์•„๋ž˜ 4๊ฐ€์ง€ ๊ธฐ์ค€์œผ๋กœ ์ธ๋ฑ์Šค๋ฅผ ๊ฒฐ์ •ํ•˜๋ฉด ๋œ๋‹ค.

  • ์นด๋””๋„๋ฆฌํ‹ฐ (Cardinality)
    • ํŠน์ • ์นผ๋Ÿผ์ด๋‚˜ ๊ด€๊ณ„์—์„œ ๊ณ ์œ ํ•œ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ์ •๋„
    • ์นด๋””๋„๋ฆฌํ‹ฐ๊ฐ€ ๋†’์„์ˆ˜๋ก ์ธ๋ฑ์Šค ์„ค์ •์— ์ข‹์€ ์ปฌ๋Ÿผ์ด๋‹ค.
  • ์„ ํƒ๋„ (Selectivity)
    • ๋ฐ์ดํ„ฐ์—์„œ ํŠน์ • ๊ฐ’์„ ์–ผ๋งˆ๋‚˜ ์ž˜ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์ง€ํ‘œ
    •  ์„ ํƒ๋„๊ฐ€ ๋‚ฎ์„์ˆ˜๋ก ์ธ๋ฑ์Šค ์„ค์ •์— ์ข‹์€ ์ปฌ๋Ÿผ์ด๋‹ค.
  • ํ™œ์šฉ๋„
    • ํ•ด๋‹น ์ปฌ๋Ÿผ์ด ์‹ค์ œ ์ž‘์—…์—์„œ ์–ผ๋งˆ๋‚˜ ํ™œ์šฉ๋˜๋Š”์ง€์— ๋Œ€ํ•œ ๊ฐ’
    • ํ™œ์šฉ๋„๊ฐ€ ๋†’์„์ˆ˜๋ก ์ธ๋ฑ์Šค ์„ค์ •์— ์ข‹์€ ์ปฌ๋Ÿผ์ด๋‹ค.
  • ์ค‘๋ณต๋„
    • ์ค‘๋ณต ์ธ๋ฑ์Šค ์—ฌ๋ถ€์— ๋Œ€ํ•œ ๊ฐ’
    • ์ค‘๋ณต๋„๊ฐ€ ์—†์„์ˆ˜๋ก ์ธ๋ฑ์Šค ์„ค์ •์— ์ข‹์€ ์ปฌ๋Ÿผ์ด๋‹ค.
SELECT
    CONCAT(ROUND(COUNT(DISTINCT dog_id_fk) / COUNT(*) * 100, 2), '%') AS dog_id_cardinality,
    CONCAT(ROUND(COUNT(DISTINCT date) / COUNT(*) * 100, 2), '%') AS date_cardinality,
    CONCAT(ROUND(COUNT(DISTINCT created_date) / COUNT(*) * 100, 2), '%') AS created_cardinality,
    CONCAT(ROUND(COUNT(DISTINCT status) / COUNT(*) * 100, 2), '%') AS status_cardinality
FROM tb_attendance;

 

๋‚˜์˜ค๋Š” ์ง€ํ‘œ๋ฅผ ๋ณด๊ณ ์„œ ๋†’์€ ์นด๋””๋„๋ฆฌํ‹ฐ์ธ ์นผ๋Ÿผ์„ ์ธ๋ฑ์Šค๋กœ ์ •ํ•˜๋ฉด ๋œ๋‹ค.

 

2. ์ธ๋ฑ์Šค ์„ค์ •ํ•˜๊ธฐ

-- ์ธ๋ฑ์Šค ์ƒ์„ฑ
CREATE INDEX idx_attendance_dog_id_fk ON tb_attendance ( dog_id_fk );

-- ์ธ๋ฑ์Šค ํ™•์ธ
show index from tb_attendance;

 

์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•œ ํ›„ ํ™•์ธํ•ด ๋ณด์ž.

 

 

์‹คํ–‰๊ณ„ํš์„ ํ†ตํ•ด ์ธ๋ฑ์Šค ํ™•์ธํ•˜๊ธฐ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ฟผ๋ฆฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ์‹คํ–‰๋˜๋Š”์ง€, ์ธ๋ฑ์Šค๊ฐ€ ์‚ฌ์šฉ๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

explain
SELECT * FROM tb_attendance
WHERE dog_id_fk = 1
;

 

์‹คํ–‰ ๊ณ„ํš์˜ ์ฃผ์š” ํ•„๋“œ

  • id: ์ฟผ๋ฆฌ ๋‚ด์˜ SELECT ๋ช…๋ น์–ด์— ๋Œ€ํ•œ ์‹๋ณ„์ž. ํ•˜์œ„ ์ฟผ๋ฆฌ๋‚˜ ์กฐ์ธ์ด ์žˆ๋Š” ๊ฒฝ์šฐ, ๊ฐ๊ฐ์˜ SELECT์— ๋Œ€ํ•ด ๊ณ ์œ ํ•œ id๊ฐ€ ํ• ๋‹น๋œ๋‹ค.
  • select_type: ์ฟผ๋ฆฌ์˜ ์œ ํ˜•. ์˜ˆ๋ฅผ ๋“ค์–ด, SIMPLE์€ ๋‹จ์ˆœ SELECT ์ฟผ๋ฆฌ, SUBQUERY๋Š” ํ•˜์œ„ ์ฟผ๋ฆฌ, DERIVED๋Š” FROM ์ ˆ์—์„œ ํŒŒ์ƒ๋œ ํ…Œ์ด๋ธ”์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
  • table: ํ•ด๋‹น ๋ผ์ธ์ด ์ฐธ์กฐํ•˜๋Š” ํ…Œ์ด๋ธ”์˜ ์ด๋ฆ„
  • type: ์กฐ์ธ ์œ ํ˜•์ด๋‚˜ ํ…Œ์ด๋ธ” ์ ‘๊ทผ ๋ฐฉ์‹. ALL์€ ์ „์ฒด ํ…Œ์ด๋ธ” ์Šค์บ”, index๋Š” ์ธ๋ฑ์Šค ์Šค์บ” ๋“ฑ์„ ์˜๋ฏธํ•œ๋‹ค.
  • possible_keys: ์ฟผ๋ฆฌ ์‹คํ–‰์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ์ธ๋ฑ์Šค์˜ ๋ชฉ๋ก
  • key: ์‹ค์ œ๋กœ ์ฟผ๋ฆฌ ์‹คํ–‰์— ์‚ฌ์šฉ๋œ ์ธ๋ฑ์Šค
  • key_len: ์‚ฌ์šฉ๋œ ์ธ๋ฑ์Šค์˜ ์ตœ๋Œ€ ๊ธธ์ด. ์ด๋Š” ์ธ๋ฑ์Šค์˜ ์–ด๋Š ๋ถ€๋ถ„๊นŒ์ง€ ์‚ฌ์šฉ๋˜์—ˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
  • ref: ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ฐธ์กฐ๋œ ์ปฌ๋Ÿผ์ด๋‚˜ ์ƒ์ˆ˜
  • rows: ์ฟผ๋ฆฌ ์‹คํ–‰์„ ์œ„ํ•ด ์ฝ์–ด์•ผ ํ•  ํ–‰์˜ ์ถ”์ •์น˜
  • Extra: ๊ธฐํƒ€ ์ •๋ณด. ์—ฌ๊ธฐ์„œ **"Using index condition"**์€ ์ธ๋ฑ์Šค ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•„ํ„ฐ๋ง๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

 

3. Mysql Profiling์œผ๋กœ ์ˆ˜์น˜ ํ™•์ธํ•ด ๋ณด๊ธฐ

 

Mysql Profiling

  • MySQL์—์„œ๋Š” ์ฟผ๋ฆฌ๊ฐ€ ์ฒ˜๋ฆฌ๋˜๋Š” ๋™์•ˆ ๊ฐ ๋‹จ๊ณ„๋ณ„ ์ž‘์—…์— ์‹œ๊ฐ„์ด ์–ผ๋งˆ๋‚˜ ๊ฑธ๋ ธ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.
-- ํ”„๋กœํŒŒ์ผ๋ง ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™” ์—ฌ๋ถ€ ํ™•์ธ
show variables like '%profiling%';

-- profiling ๊ธฐ๋Šฅ ํ™œ์„ฑํ™”ํ•˜๊ธฐ
set profiling=1;

set profiling_history_size=100;

 

์œ„์˜ ์ฝ”๋“œ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

 

๊ทธ๋Ÿผ profiling = on์œผ๋กœ, profiling_history_size = 100์œผ๋กœ ๋ฐ”๋€๋‹ค.

 

์›ํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ฟผ๋ฆฌ ์•„์ด๋””๋ฅผ ๋จผ์ € ์ฐพ์•„์ค˜์•ผ ํ•œ๋‹ค.
์ด๋ฅผ ์œ„ํ•ด์„œ ํ”„๋กœํŒŒ์ผ๋ง ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ํ™•์ธํ•˜๊ณ ์ž ํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ๋จผ์ € ์‹คํ–‰์„ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 

์›ํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž…๋ ฅํ•˜๊ณ ์„œ show profiles ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ ์ฟผ๋ฆฌ ์•„์ด๋””๋ฅผ ์ฐพ์•„๋ณด์ž.

select * from tb_attendance
where dog_id_fk = 1;

show profiles;

 

๋‹จ๊ณ„๋ณ„ ์ฟผ๋ฆฌ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๊ณ  ์—ฌ๊ธฐ์„œ ์›ํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ฐพ์œผ๋ฉด ๋œ๋‹ค.

 

  • ์ฐพ์€ Query_id์— ๋Œ€ํ•ด profiling ๊ธฐ๋Šฅ์œผ๋กœ ํ™•์ธํ•˜๊ธฐ.
    • Profile์„ ํ†ตํ•ด ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” ์„ธ๋ถ€ ๋ชฉ๋ก
      • BLOCK IO
      • MEMORY
      • CPU
      • CONTEXT SWITCHES
      • IPC
      • PAGE FAULTS
      • SOURCE
      • SWAPS
-- ํ•ด๋‹น ์ฟผ๋ฆฌ๋ฌธ์˜ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ๋” ์ƒ์„ธํ•œ ๋‹จ์œ„๋กœ ํ™•์ธ
show profile for query 37;

 

์ด์ „์— ์ž…๋ ฅํ–ˆ๋˜ ์ฟผ๋ฆฌ๊ฐ€ ์‹คํ–‰๋์„ ๋•Œ ๊ฐ ๋‹จ๊ณ„๋ณ„๋กœ ์ˆ˜ํ–‰๋œ ์‹œ๊ฐ„์„ ์„ธ๋ถ€์ ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

-- ํ•ด๋‹น ์ฟผ๋ฆฌ์˜ CPU ์‚ฌ์šฉ๋Ÿ‰์„ ๋ถ„์„
show profile cpu for query 37;

 

 

์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „๊ณผ ํ›„์— ์‹คํ–‰ ์‹œ๊ฐ„ ์ฐจ์ด

 

 

 

0.002361 -> 0.000158 

๋กœ ์‹คํ–‰์‹œ๊ฐ„์ด ํ™•์—ฐํžˆ ์ค„์˜€๋‹ค.!!

์ด๋กœ์จ ์ธ๋ฑ์Šค๋ฅผ ๊ฑธ์—ˆ์„ ๋•Œ ์ˆ˜์น˜๊ฐ€ ๊ฐœ์„ ์ด ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ngrinder๋กœ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ

์šฐ์„  ๋งŒ๋“  ์ธ๋ฑ์Šค๋ฅผ ์‚ญ์ œํ•˜๊ณ ์„œ ์„ฑ๋Šฅ์„ ํ…Œ์ŠคํŠธํ•ด๋ณด์ž

ํ•„์ž๋Š” ์ž„์˜์˜ api๋ฅผ ๋งŒ๋“ค๊ณ ์„œ ngrinder์—์„œ ์‹คํ–‰์‹œ์ผฐ๋‹ค.

 

์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๊ฒ€์ฆํ›„, ํ†ต๊ณผํ•˜๋ฉด ์„ฑ๋Šฅํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด ๋ณธ๋‹ค.

 

 

์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑ ์ „ ๊ฒฐ๊ณผ

 

 

์ธ๋ฑ์Šค ์ƒ์„ฑ ํ›„ ๊ฒฐ๊ณผ

 

 

TPS : 41.0 -> 41.8

์ตœ๊ณ  TPS: 69.5 -> 55.0

ํ‰๊ท  ํ…Œ์ŠคํŠธ ์‹œ๊ฐ„ : 246.30 -> 240.35

์ด ์‹คํ–‰ ํ…Œ์ŠคํŠธ : 2385 -> 2433

 

TPS๋Š” ์•„์ฃผ ๋ฏธ์„ธํ•˜๊ฒŒ ์ข‹์•„์กŒ์ง€๋งŒ ์‹คํ–‰ํ…Œ์ŠคํŠธ๋Š” ๋งŽ์ด ์ฆ๊ฐ€ํ–ˆ๋‹ค.

ํ…Œ์ด๋ธ”๋งˆ๋‹ค ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค๋ฉด ์„ฑ๋Šฅ์ƒ ๊ฐœ์„ ์ด ๋งŽ์ด ๋  ๊ฒƒ ๊ฐ™๋‹ค!

 

 

๋!!

 

 

 

 

 

์ฐธ๊ณ 

https://www.inflearn.com/course/์„ฑ๋Šฅ-๊ฐœ์„ -์ดˆ์„-๋‹ค์ง€๊ธฐ

 

๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž ์„ฑ๋Šฅ ๊ฐœ์„  ์ดˆ์„ ๋‹ค์ง€๊ธฐ ๊ฐ•์˜ - ์ธํ”„๋Ÿฐ

๊ธฐ๋ณธ ๊ธฐ์ˆ  ์Šคํƒ์„ ํ™œ์šฉํ•ด์„œ ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ํ•ด๋ณด๊ณ ! ๊ฐœ์„  ํ›„ ๋ณ€ํ™”๋ฅผ ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ์™€ ๋ชจ๋‹ˆํ„ฐ๋ง ํˆด์„ ํ†ตํ•ด ํ™•์ธํ•ด๋ด…๋‹ˆ๋‹ค! ์ฃผ์ œ๋ณ„ ๋ฉด์ ‘๋Œ€๋น„๋„ ๊ฐ™์ด ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค!, '์„ฑ๋Šฅ ๊ฐœ์„  ์ดˆ์„๋‹ค์ง€๊ธฐ'๋ฅผ ํ†ตํ•ด ์„ฑ๋Šฅ๊ฐœ

www.inflearn.com

 

https://rachel0115.tistory.com/entry/MySQL-์ธ๋ฑ์Šค-INDEX-์ •๋ฆฌ-๋™์ž‘-๋ฐฉ์‹-์ƒ์„ฑ-์‚ญ์ œ-์„ค๊ณ„

 

[MySQL] - ์ธ๋ฑ์Šค (INDEX) ์ •๋ฆฌ (๋™์ž‘ ๋ฐฉ์‹, ์ƒ์„ฑ, ์‚ญ์ œ, ์„ค๊ณ„)

์ธ๋ฑ์Šค๋ž€? ์ธ๋ฑ์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ ๊ฒฐ๊ณผ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ถ”์ถœํ•˜๋„๋ก ๋„์™€์ฃผ๋Š” ํ•˜๋‚˜์˜ '๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐœ์ฒด'์ž…๋‹ˆ๋‹ค. ๋งˆ์น˜ ์‚ฌ์ „์˜ '์ฐพ์•„๋ณด๊ธฐ'์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด

rachel0115.tistory.com

https://yurimkoo.github.io/db/2020/03/14/db-index.html

 

์œ ๋ฆผ's Blog

๋ฒ ์งฑ์ด๊ฐ€ ๋˜๊ณ  ์‹ถ์€ ๊ฐœ๋ฏธ์˜ ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ

yurimkoo.github.io