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

- ๋ฏธํด๊ฒฐ
Commit ์๋ต๋ฐ๊ธฐ ์ ๋คํธ์ํฌ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด
์๋ ํ์ธ์. ์ข์ ๊ฐ์ ๊ฐ์ฌํฉ๋๋ค. ๊ฐ์์ ์ง์ ์ ์ผ๋ก ๊ด๋ จ ์๋ ๋ด์ฉ์ ์๋์ง๋ง ๊ถ๊ธํ ์ ์ด ์์ด ์ง๋ฌธ๋๋ฆฝ๋๋ค.<p style="te
mysqldbms/rdbmsbackendquery-tuningmysql-query์ธํ๋ฐ
ใป
2๋ฌ ์
1
48
1
- ๋ฏธํด๊ฒฐ
14๋ถ44์ด์ ์ฟผ๋ฆฌ ์ง๋ฌธ๋๋ฆฝ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ๋จ์์ ๋ฒ์์กฐ๊ฑด ์ฌ์ฉํ ๋ 2024-01-02 00:00:00 ๊ฐ์ ์ด๋ป๊ฒ ๋๊ฒจ์ผ์ค์ผ๋๋์? <p st
mysqldbms/rdbmsbackendquery-tuningmysql-query์ค๊ฐ๋ฐ
ใป
5๋ฌ ์
0
57
2
- ํด๊ฒฐ
ep12. (2) LEFT JOIN ์ฌ์ฉ ๋ฐฉ๋ฒ ์ค์ - ์คํ ์ง๋ฌธ
์๋ ํ์ธ์(2) LEFT JOIN ์ฌ์ฉ ๋ฐฉ๋ฒ ์ค์ - ์คํ ์ง๋ฌธ (3:58 ๋ถ๊ทผ) ์์ ์ฒซ ๋ฒ์งธ SQL์ด ์๋์ ๊ฐ์ด ์จ์๋๋ฐ์ <p
mysqldbms/rdbmsbackendquery-tuningmysql-queryrex
ใป
7๋ฌ ์
0
66
2
- ํด๊ฒฐ
ep.12 count(*) ์ง๋ฌธ
์๋ ํ์ธ์, count(1) ๋์ count(*)์ ์ฐ๋ผ๊ณ ํ์ จ๋๋ฐ์, count(1)์ด ์ฑ๋ฅ์ด ๋ ์ข๋ค๊ณ ์๊ณ ์๋๋ฐ ์ ๊ฐ ์๋ชป ์๊ณ ์๋
mysqldbms/rdbmsbackendquery-tuningmysql-queryrex
ใป
7๋ฌ ์
0
54
2
- ํด๊ฒฐ
๋ ์ฝ๋ ์์ ์ ์ ์ฅ๊ณต๊ฐ์ด ๋ถ์กฑํ๋ฉด
๋ ์ฝ๋๋ฅผ ์ ์ฅํ ์์น๊ฐ ๊ฐ์ ํ์ด์ง๋ด์ ์กด์ฌํ์ง ์์ผ๋ฉด ๋ค๋ฅธ ํ์ด์ง์ ์ ์ฅ๋ ๊น์?
mysqldbms/rdbmsbackendquery-tuningmysql-query์ ์ฑํ
ใป
7๋ฌ ์
0
69
2
- ํด๊ฒฐ
๋ณตํฉ index ๋ฌธ์
์๋ ํ์ธ์, ๊ฐ์ ์ ๋ฃ๊ณ ์์ต๋๋ค. 04 ํ์ด์ง ์ฟผ๋ฆฌ ์์ฑ ๊ฐ์ > ๋ฐ์ดํฐ ๊ฐ์ ๊ธฐ๋ฐ ๋ฐฉ์ (๋๋ฑ ์กฐ๊ฑด ์ฌ์ฉ ์) (9:36 ๋ถ๊ทผ)
mysqldbms/rdbmsbackendquery-tuningmysql-queryrex
ใป
8๋ฌ ์
0
73
2
- ํด๊ฒฐ
๊ฐ์
์๋ ํ์ธ์, ppt ์๋ฃ์ ๊ณต์ด ์๋๋ ๊ฑด๊ฐ์?์ผ๋ ์ ๋ฌธ์ ๊ธ์ด ์์ด๋ณด๋, ๋ฌธ์ ๊ฐ ์์ด ๋น์ฅ์ ๊ณต๊ฐ๋ฅผ ์ํ๊ณ ์๋ค๊ณ ํ์ ๊ธ์ ๋ดค๋๋ค ์์ง๋ ํด๊ฒฐ ๋์ง ์์ผ์ ๊ฑธ๊น์
mysqldbms/rdbmsbackendquery-tuningmysql-queryhi_man159
ใป
8๋ฌ ์
0
68
1
- ํด๊ฒฐ
LEFT JOIN ์ ๋๋ผ์ด๋น ํ ์ด๋ธ์ ์ ALL๋ก ์ฝ๋์?
10๊ฐ LEFT JOIN ์ฃผ์์ฌํญ ๋ฐ ํ๋์์explain select <a target="_blank" rel="noopener noreferrer no
mysqldbms/rdbmsbackendquery-tuningmysql-query๋๋๋ก
ใป
10๋ฌ ์
0
90
2
- ๋ฏธํด๊ฒฐ
GAP ๋ฝ์ ๋ํ ์ง๋ฌธ ๋๋ฆฝ๋๋ท..!
ํด๋น ๊ฐ์์ ์ง์ ์ ์ผ๋ก ์ฐ๊ด์์ง๋ ์์ผ๋, Lock ๊ด๋ จํ์ฌ ๊ณต๋ถํ๋ ์ค ์ฑ์ฑ๋์ <a target="_blank" rel="noopener noreferrer nofollow" href="https://medium.com/daangn/mysql-gap-lock-
mysqldbms/rdbmsbackendquery-tuningmysql-query์์ฑ์ ์์
ใป
0
174
1
- ํด๊ฒฐ
ORDER BY๊ฐ ํ์ํ ์ด์
๋ฐ์ดํฐ ๊ฐ์ ๊ธฐ๋ฐ ๋ฐฉ์ (๋๋ฑ ์กฐ๊ฑด ์ฌ์ฉ์) ์์ ์ด๋ฏธ ์ธ๋ฑ์ค๋ฅผ ์ค์ ํ๊ธฐ ๋๋ฌธ์KEY ix_userid_id (user_id, id)๋ฐ๋ก ํ์ ORDER BY id๋ฅผ ํด์ฃผ์ง ์์๋ ์ ๋ ฌ์ด ๋์ด ์์ ๊ฒ์ด๋ผ๊ณ ์์๋๋๋ฐ ์์ฑํด ์ค์ผ
mysqldbms/rdbmsbackendquery-tuningmysql-query๊น์ํ
ใป
0
162
2
- ํด๊ฒฐ
[์คํ ์ ๋ณด] ์ ํ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๋ฐ์ดํฐ ๋ถ์
์๋ ํ์ธ์~!๊ฐ์์ ์คํ๊ฐ ์๋ ๊ฒ ๊ฐ์์ ์ง๋ฌธ ๋๋ฆฝ๋๋ค.e2 ์๋ธ์ฟผ๋ฆฌ์ user_id๋ select ์ ์ ํฌํจ๋์ผ ํ ๊ฒ ๊ฐ์์!select sum(sign_up) as signed_up, sum
mysqldbms/rdbmsbackendquery-tuningmysql-query๊ฐ๋ฐํ๋์ฟผ์นด
ใป
0
153
1
- ํด๊ฒฐ
2๊ฐ. VARCHAR(255) ์ ์ฅ๋๋ ๋ฐ์ดํฐ์ ๊ธธ์ด ์ ๋ณด ์ง๋ฌธ
์๋ ํ์ธ์. 2๊ฐ์ ์๊ฐํ๋ฉด์ ๊ถ๊ธํ ์ ์ด ์์ด ์ง๋ฌธ ๊ธ ๋จ๊น๋๋ค. VARCHAR(30) vs VARCHAR(255) ๋ ์ค์์ ๋ฐ์ดํฐ ํ์ ์ ์ ํํ ๋ ์ค์ ์ฌ์ฉํ๋ ๊ธธ์ด๋งํผ๋ง ๋ช ์ํด ์ฃผ๋ ๊ฒ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ ํจ์จ์ ๋์ผ ์ ์๋ค๊ณ
mysqldbms/rdbmsbackendquery-tuningmysql-querygmpark
ใป
0
406
2
- ํด๊ฒฐ
LIMIT, OFFSET์ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋ฒ์ ๊ธฐ๋ฐ ๋ฐฉ์์ ์ฑ๋ฅ ์ฐจ์ด
์๋ ํ์ธ์. ๊ฐ์ ์ ๋ฃ๊ณ ์์ต๋๋ค. ์ ๊ฐ ์ดํดํ๋ฐ๋ก๋ LIMIT, OFFSET์ ์์์๋ถํฐ data๋ฅผ ์์ฐจ์ ์ผ๋ก ์ฝ๊ธฐ๋๋ฌธ์ ์ฑ๋ฅ ์ ์ข์ง ์๊ณ ์ด๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ๋ฒ์ ๊ธฐ๋ฐ ๋ฐฉ์์ ์ฌ์ฉํ๋ค๊ณ ์ดํดํ์์ต๋๋ค.๋ฒ์ ๊ธฐ๋ฐ ๋ฐฉ์์ ์ง์ ID ๊ฐ์ ์ง์ ํด์ฃผ
mysqldbms/rdbmsbackendquery-tuningmysql-query๋ฐ์ ์
ใป
0
294
2
- ํด๊ฒฐ
MySQL Where์ ๋ด ์กฐ๊ฑด์ ์์
์๋ ํ์ธ์. MySQL ์ฌ์ฉ์ ์์ด Where์ ๋ด ์กฐ๊ฑด์ ์์๊ฐ ์ฟผ๋ฆฌ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น๋์ง ์ฌ์ญ๊ณ ์ ๋ฌธ์๋๋ฆฝ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก๋ ์ตํฐ๋ง์ด์ ๊ฐ ์ฟผ๋ฆฌ๋ฅผ ์ต์ ํํ๊ธฐ ๋๋ฌธ์ Where์ ์ ์์๊ฐ ์ค์ํ์ง ์์ ๊ฒ์ผ๋ก ์๊ณ ์๋๋ฐ, DBMS์ ๋ฐ๋ผ ํต๊ณ์ ๋ณด๋ฅผ ํ์ฉํ๋ ๋ฐ
mysqldbms/rdbmsbackendquery-tuningmysql-query๋์์จ๋ฌด๋ฆฌ๋ด
ใป
0
368
2
- ํด๊ฒฐ
1๊ฐ. delete marking๋ ๋ฐ์ดํฐ์ ์ ๋ฆฌ ์ฃผ๊ธฐ๋ ์ด๋ ์ ๋์ธ๊ฐ์?
์๋ ํ์ธ์. ์ข์ ๊ฐ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.๊ฐ์ ๋ด์ฉ ์ค, VARCHARํ์ ์ปฌ๋ผ์ ๋ ๊ธด ๋ฌธ์์ด๋ก UPDATE ์์ ์ ์ด์ ๊ณต๊ฐ์ delete marking ๋๋ค๊ณ ํ์ จ์ต๋๋ค.PostgreSQL์ ๊ฒฝ์ฐ์๋ ๋น์ทํ ๋งค์ปค๋์ฆ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ V
mysqldbms/rdbmsbackendquery-tuningmysql-querymoti0
ใป
0
221
2
- ํด๊ฒฐ
Mysql table avg_row_length
TEXT, LONGTEXT ํ์ ์นผ๋ผ์ด ์กด์ฌํ๋ ํ ์ด๋ธ์ ๊ฒฝ์ฐ์ informatino_schema.TABLES์ ์กด์ฌํ๋ avg_row_length์ ๊ฐ์ LOB ์นผ๋ผ๋ค์ ํ๊ท ๋ฐ์ดํธ ์๋ ๊ฐ์ด ๊ณ์ฐ์ด ๋๋๊ฑธ๊น์?
mysqldbms/rdbmsbackendquery-tuningmysql-queryClazitive Develope
ใป
0
136
1
- ํด๊ฒฐ
12๊ฐ FULL GROUP BY
์๋ ํ์ธ์.8:01์์ FULL GROUP BY ํํ์ ๋ํด ์ค๋ช ํด ์ฃผ์๊ณ ์์ต๋๋ค. ๊ทธ ์ค ์ค๋ฅธ์ชฝ์ FULL GROUP BY์ ์ฟผ๋ฆฌ์ ์ง๋ฌธ์ด ์์ต๋๋ค. GROUP BY๋ก fd1์ ๋ช ์ํ์ผ๋ ์ ์ ํ ์ฟผ๋ฆฌ๋<pr
mysqldbms/rdbmsbackendquery-tuningmysql-query์กฐํ๋ฅ
ใป
0
129
2
- ํด๊ฒฐ
ep11) Prepared Statement์์ ์ง๋ฌธ
์๋ ํ์ธ์ ๊ฐ์ฌ๋Client Side PreparedStatement ๋ ์ด๋ป๊ฒ SQL Injection์ ๋ง์ ์ ์๋ค๋๊ฒ? ์ setํ๊ธฐ์ ์ application์์ ์ฒดํฌํด์ ๋ง๋๋ค๋์๋ฏธ์ธ๊ฐ์?
mysqldbms/rdbmsbackendquery-tuningmysql-querydohyun_lim
ใป
0
138
2
- ํด๊ฒฐ
7)select for update ๊ฐ์์์ ์ง๋ฌธ
์๋ ํ์ธ์ ๊ฐ์ฌ๋ gpt o1์๊ฒ ๋ฌผ์ด๋ณด๋ค๊ฐ ์ง๋ฌธ์ด ์๊ฒผ์ต๋๋ค.<img src="https://cdn.inflearn.com/public/files/posts/575acb2f-fea3-4bce-a4fa-348cb3f50e65/ba7a2234-4f0b-409
mysqldbms/rdbmsbackendquery-tuningmysql-querydohyun_lim
ใป
0
217
2
- ํด๊ฒฐ
12๊ฐ. LEFT JOIN ์ฌ์ฉ ๋ฐฉ๋ฒ ์ค์ 5:42
์๋ ํ์ธ์ ๊ฐ์ ์ ๋ฃ๊ณ ์์ต๋๋ค.๊ฐ์ ๋ด์ฉ ์ค ์ค๋ฅธ์ชฝ ์ฟผ๋ฆฌ์์ LEFT JOIN์ด ๋ถํ์ํ๊ฒ ๋ค์ด๊ฐ์ ์ฟผ๋ฆฌ๋ค์์ LEFT JOIN์ ์ ๊ฑฐํ๋๊ฒ ์ฟผ๋ฆฌ ์ฑ๋ฅ์ ๋์์ด ๋๋ค๊ณ ํ์ จ๋๋ฐ์.LEFT JOIN ๋์ INNER JOIN์ ์ฌ์ฉํ๋ ๊ฒ
mysqldbms/rdbmsbackendquery-tuningmysql-queryyi12277176
ใป
0
229
2






