Real MySQL ์์ฆ 1 - Part 2
MySQL์ ํต์ฌ์ ์ธ ๊ธฐ๋ฅ๋ค์ ์ดํด๋ณด๊ณ , ์ค๋ฌด์ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์์ต๋๋ค. ๋ํ, ์ค๋ซ๋์ ๊ด์ฑ์ ์ผ๋ก ์ฌ์ฉํ๋ฉฐ ๋ฌด์ฌ์ฝ ์ง๋์ณค๋ ์ค์ํ ๋ถ๋ถ๋ค์ ์๋กญ๊ฒ ์ดํดํ๊ณ , ๊น์ด ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ง์์ ์ป์ ์ ์์ต๋๋ค.
์๊ฐ์ 1,028๋ช
๋์ด๋ ์ด๊ธ
์๊ฐ๊ธฐํ ๋ฌด์ ํ

- ํด๊ฒฐ
unique index๊ฐ ๊ฑธ๋ฆฐ ์ํฉ์์ s-lock, x-lock ์ง๋ฌธ
์๋ ํ์ธ์?๋จผ์ ์ข์ ๊ฐ์ ๊ฐ์ฌํฉ๋๋ค. 7:50์ฏค unique ์ ์ฝ์กฐ๊ฑด์ด ๊ฑธ๋ฆฐ ์ํฉ์์ deadlock์ด ๋ฐ์ํ๋ ๊ฒฝ์ฐ์ ์ง๋ฌธ์ด ์์ด์ ๊ธ ๋จ๊น๋๋ค. ๋ง์์ฃผ์ ์๋๋ฆฌ์ค๋u
mysqldbms/rdbmsbackendquery-tuningmysql-query์์ฑ์ ์์
ใป
0
491
2
- ๋ฏธํด๊ฒฐ
์ง๋ฌธ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์. 1,2 ๊ฐ์ ์ ๋ถ ์๋ดค์ต๋๋ค!! ๋ง์ ๋์ ๋์์ต๋๋ค.๊ทผ๋ฐ ๊ฐ์์ ๋ํ ์ง๋ฌธ์ ์๋๋ฐ ๋์ ํ ์ฌ์ญค๋ณผ ์ฌ๋์ด ๋ฑํ ์์ด์์..ํ์ฌ ๋ฐฑ์๋ ์ทจ์ค์์ธ๋ฐ ํ๋ก์ ํธ์ mysql ๋ ํ๋ฆฌ์นด๋ฅผ ๋์ ํด์ master / slave1,2 ์ํคํ
mysqldbms/rdbmsbackendquery-tuningmysql-query์์ฑ์ ์์
ใป
0
248
1
- ํด๊ฒฐ
Real MySQL ์์ฆ1 part 2 ์ํผ์๋ 16์ ์ธ๋ฑ์ค๊ฐ null์ธ ์ปฌ๋ผ์ ํฌํจํ๋ค๋ ๊ฒ์ ๋ํ ์ง๋ฌธ
์ธ๋ฑ์ค๊ฐ null์ธ ์ปฌ๋ผ์ ํฌํจํ๊ณ ์๊ณ ๋์์ปฌ๋ผ์ด nullable column์ธ์ง not null column์ธ์ง์๊ด์์ด ์ด๋ค ์ธ๋ฑ์ค๋ฅผ ์ฝ์ด๋ ํ ์ด๋ธ์ ์ ํํ ๋ ์ฝ๋ ์๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค๋๊ฒ ๋ฌด์จ ๋ป์ธ์ง ์ดํด๊ฐ ์์๊ฐ์ ์ง๋ฌธ ๋๋ฆฝ๋๋ค.&
mysqldbms/rdbmsbackendquery-tuningmysql-queryHj S
ใป
0
158
1
- ํด๊ฒฐ
์ํธ์ ํ๊ฒ ์ฆ๊ฐํ์ง ์๋ PK์ insert์ฑ๋ฅ๋ ๋ฌธ์ ๊ฐ ์์๊น์?
์ข์ ๊ฐ์ ์ ๊ณตํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!๊ฐ์๋ฅผ ๋ฃ๋ค๋ณด๋ ์๋ฌธ์ ์ด ํ๋ ์๊ฒผ๋๋ฐ์. ์ํผ์๋ 14์ ์ํธ์ ํ์ง ์์ UUID์ฌ์ฉ์ ๋ฒ์ ๊ฒ์์ ์กฐํ ํจ์จ์ฑ ๋ฌธ์ ๋ฅผ ์ธ๊ธํด์ฃผ์ จ๋๋ฐ์ ๋ฐ์ดํฐ ์ฝ
mysqldbms/rdbmsbackendquery-tuningmysql-query์ต์์ง
ใป
0
218
2
- ํด๊ฒฐ
ํํฐ์ ๋์ ์์ ์ฌ์ฉ ํจ์จ ์ฆ๊ฐ ๊ด๋ จ ์ง๋ฌธ
"ํ ์ด๋ธ ํํฐ์ ๋์ด ํ์ํ ์ด์ "์ค์ "์์ ์ฌ์ฉ ํจ์จ ์ฆ๊ฐ ๋ฐ ์ฟผ๋ฆฌ ์ฑ๋ฅ ํฅ์"์ ์ธ๊ธ์ฃผ์ จ์ต๋๋ค.์๋ฅผ๋ค์ด ์ต๊ทผ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ค ์์ฃผ๋ก ์กฐํํ๋ ๊ฒฝ์ฐ ํํฐ์ ํ๋ฃจ๋์ ํตํด ์ต๊ทผ ๋ฐ์ดํฐ๋ง ์ ๊ทผํ๋๊น ํจ์จ์ ์ด๋ผ๋ ๋ด์ฉ์ธ๋ฐ์, ํจ์จ์ ์ธ ๋ถ๋ถ์ด ์ ๊ฐ ์๊ฐํ
mysqldbms/rdbmsbackendquery-tuningmysql-queryhoon
ใป
1
625
2
- ํด๊ฒฐ
INSERT์์ shared lock์ ๊ฑฐ๋ ์ด์ ์ง๋ฌธ
"DeadLock ์์(2)"์์ INSERT๊ตฌ๋ฌธ์ด UNIQUE๋ฅผ ๋ณด์ฅํ๊ธฐ์ํด shared lock์ ๊ฑธ๊ณ ํ์ธํ๋ค๊ณ ํ์๋๋ฐ์, ๊ทธ๋ฅ ์ฒ์๋ถํฐ exclusive lock์ ๊ฑธ๊ณ ๊ฐ์ ํ์ธํ๊ฒ ๊ตฌํํ ์๋ ์์ ๊ฒ ๊ฐ์๋ฐ, ๊ทธ๋ ๊ฒ ์๋์ด์๋ ํน๋ณํ ์ด์ ๊ฐ ์์๊น์?
mysqldbms/rdbmsbackendquery-tuningmysql-queryhoon
ใป
1
402
3
- ํด๊ฒฐ
์๋ ํ์ธ์. ์ธ๋ฑ์ค ๊ด๋ จ ์ง๋ฌธ ์์ต๋๋ค.
์ํผ์๋ 15์์ ๋ณตํฉ ์ธ๋ฑ์ค์ ๊ฒฝ์ฐ ์์๊ฐ ์ค์ํ๋ค๊ณ ํ์ จ๋๋ฐ์.๊ทธ๋ผ ์ธ๋ฑ์ค ์์ฑ ์ (account_type, joined_at) ์ ๊ฐ์ ์์์ผ๋ ์กฐ๊ฑด์ joined_at account_type ์์๋ก ์ฃผ์ด์ง๋ฉด ์ธ๋ฑ์ค๋ฅผ ํ์ฉํ์ง ๋ชปํ๋๊ฒ ๋ง์
mysqldbms/rdbmsbackendquery-tuningmysql-queryned.choi
ใป
0
354
2
- ํด๊ฒฐ
ํ ์ด๋ธ์ด 1:N ๊ตฌ์กฐ์์ N์ชฝ ํ ์ด๋ธ์ ์ ๋ํฌ ์ ์ฝ์กฐ๊ฑด์ ์ํ ์ค๋ฅ๋ฐ์ ํํผ ๋ฐฉ๋ฒ์ด ๋ญ๊น์?
์๋ ํ์ธ์. ์ง๋ฌธ ๋๋ฆฝ๋๋ค.1:N ๊ตฌ์กฐ์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๋๋ค.์ข ์ข ๋์ผํ insert ์์ฒญ์ด ์งง์ ์๊ฐ์ ๋ฐ์ ํฉ๋๋ค.insert๋ N(child) ํ ์ด๋ธ์ ๋์ด์ผ ํฉ๋๋ค.ํด๋น ํ ์ด๋ธ์๋ ์ ๋ํฌ ์
mysqldbms/rdbmsbackendquery-tuningmysql-query์ฑ์คํฑ
ใป
0
253
1
- ํด๊ฒฐ
๋ณตํฉ ์ธ๋ฑ์ค์ ์ปฌ๋ผ์ค ์ ํ ์ปฌ๋ผ์ ์กฐ๊ฑด์์ ๋๋ฝํด๋ ์ธ๋ฑ์ค๊ฐ ์ฌ์ฉ๋ ์๋ ์๋์?
์๋ ํ์ธ์. ์ด์ 2ํ์ฐจ๋ก ๋ค์ ์ ๋ณด๊ณ ์๋ ์๊ฐ์์ ๋๋ค ๐ Ep15๋ฅผ ๋ณด๋ ์ค ๋ณตํฉ ์ธ๋ฑ์ค์ ์ปฌ๋ผ๋ค ์ค ์ ํ์ปฌ๋ผ์ ์กฐ
mysqldbms/rdbmsbackendquery-tuningmysql-query์ดํ์
ใป
0
226
1
- ํด๊ฒฐ
SKIP LOCKED ๋ถ๋ถ์์ INNER JOIN์ด ์๋๊ณ LEFT JOIN์ด ๊ฑธ๋ฆด์ ์๋ค๋ฉด
์์ ์์๋ WHERE ์ ๋๋ฌธ์ LEFT JOIN์ด INNER JOIN์ผ๋ก ์ต์ ํ๋๋ ๊ฒ์ผ๋ก ์๊ณ ์์ง๋ง ๋ง์ฝ์ LEFT JOIN์ผ๋ก ๊ฑธ๋ฆด ์ ์๋ ์ฟผ๋ฆฌ๋ผ๋ฉด SKIP LOCKED ์ ์ ๊ธ ๊ฒฝํฉ์ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง ์๋ ์๋์?
mysqldbms/rdbmsbackendquery-tuningmysql-querykekim
ใป
0
173
1
- ํด๊ฒฐ
๋จ์ผ ์ธ๋ฑ์ค ํฌ๊ธฐ, ์ ์ฒด ์ธ๋ฑ์ค ํฌ๊ธฐ ๊ตฌํ๋ ๊ณ์ฐ์
์๋ ํ์ธ์!14๋ถ ์ฏค ๋์ค๋ ๋จ์ผ ์ธ๋ฑ์ค ํฌ๊ธฐ์ ์ ์ฒด ์ธ๋ฑ์ค ํฌ๊ธฐ๊ฐ ์ผ๋ง์ธ์ง ๋์ค๋๋ฐ, ๊ฐ๊ฐ ๊ตฌํ๋ ๊ณ์ฐ์์ ์ ์ ์์๊น์..?์ด๋ป๊ฒ 8๋ฐ์ดํธ๊ฐ 1์ต๊ฑด์ ํ ์ด๋ธ์ด ์์๋ 6GB๊ฐ ๋๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค..<li
mysqldbms/rdbmsbackendquery-tuningmysql-query์ธ์ง:)
ใป
0
228
2
- ํด๊ฒฐ
primary key์ ์๊ฐ, uuid๋ก ๋ณตํฉํค๋ก ์ค์ ํ๋ ๊ฒฝ์ฐ
์๋ ํ์ธ์!์ข์ ๊ฐ์ ๊ฐ์ฌํฉ๋๋ค!์ด๋ ฅ ํ ์ด๋ธ์ ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํดpk๊ฐ ์ค์ ์ ์ ์ํ์ ์ ํ์ด ์๋ค๊ณ ์๊ฐํด์์๊ฐ+uuid๋ก ๋ณตํฉํค๋ฅผ ์ค์ ํ๋ ค๊ณ ํ๋๋ฐ์! ๋ ์ธ์ง ํํฐ์ ๋ ์ฌ์ฉํ๋ ค๊ตฌ
mysqldbms/rdbmsbackendquery-tuningmysql-query์ธ์ง:)
ใป
0
314
2
- ํด๊ฒฐ
์ํผ์๋ 21์ ๊ถ๊ธํ ์ ์ด ์์ด ์ง๋ฌธ๋๋ฆฝ๋๋ค.
๊ฐ์ ๋ง์ง๋ง ์ฃผ์์ฌํญ ์ค ์๋์ ์ค๋ช ์ด ์์๋๋ฐ์."์ฐธ์กฐํ๋ ํ ์ด๋ธ๋ค์ ๋ฐ์ดํฐ์๋ ์ฝ๊ธฐ ์ ๊ธ(Shared Lock) ์ด ๋ฐ์ํ๋ฏ๋ก, ์ ๊ธ๊ฒฝํฉ์ด ๋ฐ์ํ ์ ์์" ์ด ๋ถ๋ถ์ ๋ํ ์ถ๊ฐ์ ์ธ ๊ถ๊ธ์ฆ์ด ์์ต๋๋ค.<
mysqldbms/rdbmsbackendquery-tuningmysql-queryํฉ์ ํ
ใป
0
228
2
- ํด๊ฒฐ
์ํผ์๋ 17๋ฒ์์ skip locked ์ง๋ฌธ์ด ์์ต๋๋ค.
์ผ๋จ ์ด ๊ฐ์๋ฅผ ํตํด์ ๋๋ฌด๋ ์ข์ ์ ๋ณด๋ฅผ ๋ง์ด ์ป์ด๊ฐ์ ๊ฐ์ฌํ ๋ฐ๋ฆ์ ๋๋ค. Ep.17 ๊ฐ์ ๋ง์ง๋ง์ ์ ๋ฆฌ ๋ถ๋ถ์์ "SKIP LOCKED๋ ๋ฐ์ดํฐ ํ์ ํ ๋ฐฐ์น์ก ์ฒ๋ฆฌ"์ ์ ์ฉํ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค
mysqldbms/rdbmsbackendquery-tuningmysql-querykm9311
ใป
0
253
1
- ํด๊ฒฐ
Real MySQL ์์ฆ 1 - Part 1 or Part2 ์์์ ๋์ค๋ ์๋ฃ ๊ณต์ ๊ฐ๋ฅํ๋์?
์ฐ์ ์ข์ ๊ฐ์ ๊ธฐํ๋ฅผ ์ฃผ์ ์ ๋๋ฌด ๊ฐ์ฌ๋๋ฆฝ๋๋ค :) ์ถ๊ทผ๊ธธ ์๋๋ฉด ํด๊ทผ๊ธธ์ ์์์ ๋์ค๋ ์๋ฃ ๋ณด๋ฉด์ ๊ณต๋ถ ํ ๋ ค๊ณ ํ๋๋ฐ์.<p
mysqldbms/rdbmsbackendquery-tuningmysql-query๋ฆฌ๋
ใป
1
359
1






