๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

SQL13

QueryDSL์˜ transform์„ ์‚ฌ์šฉํ•ด ๋ฆฌ๋ทฐ ํ†ต๊ณ„ ์ •๋ณด ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์š”๊ตฌ์‚ฌํ•ญ ํ–ฅ์ˆ˜ ๋ฆฌ๋ทฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ, ํ–ฅ์ˆ˜ ๋ฆฌ๋ทฐ ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜์œผ๋กœ ํ†ต๊ณ„๋ฅผ percentage๋กœ ๋‚ด์–ด ๋ฐ˜ํ™˜ํ•˜๋Š” ์š”๊ตฌ์‚ฌํ•ญ์ด ์žˆ์—ˆ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ํŠน์ • ํ–ฅ์ˆ˜์— ๋Œ€ํ•ด ์‚ฌ๋žŒ๋“ค์ด ๋ฆฌ๋ทฐํ•œ ๋ฌด๊ฒŒ๊ฐ ์ •๋„, ์ง€์†๋ ฅ, ๊ณ„์ ˆ, ํ™•์‚ฐ๋ ฅ ์ •๋„, ์‚ฌ์šฉ์ž์˜ ์„ฑ๋ณ„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์˜ค๊ฐํ˜•์„ ๋‚˜ํƒ€๋‚ด์–ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ํŠน์ • ํ–ฅ์ˆ˜์— ๋Œ€ํ•œ ๋ฆฌ๋ทฐ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•ด ๊ฐ๊ฐ์˜ ๋ฆฌ๋ทฐ ์š”์†Œ๋งˆ๋‹ค ๋น„์œจ์„ ๊ณ„์‚ฐํ•ด ์กฐํšŒํ•˜๊ณ ์ž ํ•œ๋‹ค. ๋‹น์—ฐํ•œ ๋ง์ด์ง€๋งŒ ๊ฐ๊ฐ์˜ Percentage๋ฅผ ๋ชจ๋‘ ํ•ฉํ•˜๋ฉด 100์ด ๋˜์–ด์•ผ ํ•œ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ๋ฆฌ๋ทฐ ํ…Œ์ด๋ธ”๊ณผ ์œ ์ € ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ดํŽด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. (์ผ๋ถ€ ํ•„์š”์—†๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ƒ๋žตํ–ˆ๋‹ค.) ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ๋Š” ๋ฆฌ๋ทฐ ๋ฐ์ดํ„ฐ์™€ ๋ฆฌ๋ทฐ๋ฅผ ์ž‘์„ฑํ•œ ์‚ฌ์šฉ์ž์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•ด ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฆฌ๋ทฐ ์š”์†Œ๋งˆ๋‹ค percentage๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•ด .. 2024. 1. 14.
CentOS7์—์„œ MySQL 8 ๋ฒ„์ „ ์„ค์น˜ํ•˜๊ธฐ 1. yum์„ ์‚ฌ์šฉํ•ด install ํ•ด์ฃผ๊ธฐ $ yum install https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm $ yum install mysql-server 2. ์ž˜ ์„ค์น˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธ $ mysql --version 3. mysql์„ ์‹œ์ž‘ ๋ฐ ๋ถ€ํŒ…์‹œ ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜๋„๋ก ์„ค์ • (์•ˆ๋œ๋‹ค๋ฉด sudo ๊ถŒํ•œ ์‚ฌ์šฉ) systemctl start mysqld systemctl enable mysqld 4. ์ดˆ๊ธฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ grep ์‚ฌ์šฉํ•ด ์–ป์€ ํ›„ mysql ์ ‘์† (grep ์ด ์•ˆ๋œ๋‹ค๋ฉด sudo ๊ถŒํ•œ ์‚ฌ์šฉ) $ grep 'temporary password' /var/log/mysqld.log $ mysql -u root -p 5. ๋น„๋ฐ€๋ฒˆ.. 2023. 4. 20.
ERROR 2002 (HY000): Can't connect to local server through socket '/tmp/mysql.sock' (2) m1 ๋งฅ์—์„œ ํ•ด๊ฒฐํ•˜๊ธฐ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ - m1 Mac ์—๋Ÿฌ ๋ถ„์„ - mysql์„ ์ œ๋Œ€๋กœ ์ œ๊ฑฐํ•˜์ง€ ์•Š๊ณ  mariadb๋ฅผ homebrew๋กœ ์„ค์น˜ํ–ˆ์Œ - mysql -u root -p ๋“ฑ mysql ๋ช…๋ น์–ด๋ฅผ ์น˜๋ฉด `ERROR 2002 (HY000): Can't connect to local server through socket '/tmp/mysql.sock' (2)` ๋ฐœ์ƒ - brew services start mariadb๋กœ mariadb๋ฅผ ์‹คํ–‰์‹œ์ผœ๋„ ๋™์ผํ•œ ์—๋Ÿฌ ๋ฐœ์ƒ ํ•ด๊ฒฐ ํ˜น์‹œ ๋ชฐ๋ผ ํ• ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ด๋™์› ํ–ˆ๋‹ค. # ๋ชจ๋‘ ์ œ๊ฑฐ brew uninstall mysql brew uninstall mariadb brew cleanup # m1 sudo rm -rf /opt/homebrew/var/mysql sudo rm -rf /Lib.. 2022. 8. 21.
[SQL ๋ ˆ๋ฒจ์—…] 10์žฅ: ์ธ๋ฑ์Šค ์‚ฌ์šฉ ์ธ๋ฑ์Šค์™€ B-tree 1. B-tree ์ธ๋ฑ์Šค ํŠธ๋ฆฌ๊ตฌ์กฐ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ธ๋ฑ์Šค ๊ท ํ˜•์žกํžŒ ๋ฒ”์šฉ์„ฑ์œผ๋กœ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์ธ๋ฑ์Šค ํŠธ๋ฆฌ์˜ ๋ฆฌํ”„๋…ธ๋“œ์—๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฐœ์„ ๋œ B+tree ๋ฒ„์ „์„ ๋ณดํ†ต ์‚ฌ์šฉ B+tree ํŠน์ง• - ๋ฃจํŠธ์™€ ๋ฆฌํ”„์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐ€๋Šฅํ•œ ์ผ์ •ํ•˜๊ฒŒ ์œ ์ง€ํ•˜์—ฌ ๊ท ํ˜•์ด ์ž˜ ์žกํ˜€ ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ์ด ์•ˆ์ •์  (๋ฐ์ดํ„ฐ ์–‘์ด ์ฆ๊ฐ€ํ•ด๋„ ๊ฒ€์ƒ‰ ์†๋„๊ฐ€ ๊ฐ‘์ž๊ธฐ ์•…ํ™”๋˜๋Š” ์ผ์ด ์—†์Œ) - ํŠธ๋ฆฌ์˜ ๊นŠ์ด๋„ 3-4 ์ˆ˜์ค€์œผ๋กœ ์ผ์ •ํ•˜๊ณ , ๋ฐ์ดํ„ฐ๊ฐ€ ์ •๋ ฌ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์—ฌ ์ด๋ถ„ ํƒ์ƒ‰์„ ํ†ตํ•ด ๊ฒ€์ƒ‰ ๋น„์šฉ ์ ˆ๊ฐ ๊ฐ€๋Šฅ - ์ง‘์•ฝ ํ•จ์ˆ˜ ๋“ฑ์—์„œ ์š”๊ตฌ๋˜๋Š” ์ •๋ ฌ์„ ํ•˜์ง€ ์•Š์€ ์ฑ„ ์‹คํ–‰ ๊ฐ€๋Šฅ - ๋“ฑํ˜ธ์™€ ๋ถ€๋“ฑํ˜ธ๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒ€์ƒ‰ ์กฐ๊ฑด์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ B+tree ๊ตฌ์กฐ 2. ๊ธฐํƒ€ ์ธ๋ฑ์Šค ๋น„ํŠธ๋งต ์ธ๋ฑ์Šค ๋ฐ์ดํ„ฐ๋ฅผ ๋น„ํŠธ ํ”Œ๋ž˜๊ทธ๋กœ ๋ณ€ํ™˜ํ•ด ์ €์žฅํ•˜๋Š” ์ธ๋ฑ์Šค ์นด๋””๋„๋ฆฌํ‹ฐ๊ฐ€ ๋‚ฎ.. 2022. 5. 23.
[SQL ๋ ˆ๋ฒจ์—…] 9์žฅ: ๊ฐฑ์‹ ๊ณผ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ๊ฐฑ์‹ ์€ ํšจ์œจ์ ์œผ๋กœ 1. NULL ์ฑ„์šฐ๊ธฐ val ์ปฌ๋Ÿผ์— NULL์ธ ๋ถ€๋ถ„์€ ์ด์ „ ๋ ˆ์ฝ”๋“œ์™€ ๊ฐ™์€ ๊ฐ’์ž„์„ ์˜๋ฏธํ•จ ์ฆ‰, NULL ๋ถ€๋ถ„์— ์ด์ „ ๋ ˆ์ฝ”๋“œ์™€ ๊ฐ™์€ ๊ฐ’์„ ์ฑ„์›Œ๋„ฃ์–ด์•ผ ํ•จ 1) ๊ฐ™์€ keycol ํ•„๋“œ๋ฅผ ๊ฐ€์ง 2) ํ˜„์žฌ ๋ ˆ์ฝ”๋“œ๋ณด๋‹ค ์ž‘์€ seq ํ•„๋“œ ๊ฐ€์ง 3) valํ•„๋“œ๊ฐ€ NULL์ด ์•„๋‹˜ UPDATE OmitTbl SET val = (SELECT val FROM OmitTbl OT1 WHERE OT1.keycol = OmitTbl.keycol AND OT1.seq = (SELECT MAX(seq) FROM OmitTbl OT2 WHERE OT2.keycol = OmitTbl.keycol AND OT2.seq < OmitTbl.seq AND OT2.val IS NOT NULL)) WHERE val IS NULL; .. 2022. 5. 16.
[SQL ๋ ˆ๋ฒจ์—…] 8์žฅ: SQL์˜ ์ˆœ์„œ ์ˆœ์„œ์กฐ์ž‘ ๊ธฐ์ดˆ - ๋ ˆ์ฝ”๋“œ์— ์ˆœ๋ฒˆ ๋ถ™์ด๊ธฐ 1. ๊ธฐ๋ณธ ํ‚ค๊ฐ€ ํ•œ ๊ฐœ์˜ ํ•„๋“œ์ผ ๊ฒฝ์šฐ ์œˆ๋„์šฐ ํ•จ์ˆ˜ ์‚ฌ์šฉ SELECT student_id, ROW_NUMBER() OVER (ORDER BY student_id) AS seq FROM Weights; ์ƒ๊ด€ ์„œ๋ธŒ์ฟผ๋ฆฌ ์‚ฌ์šฉ SELECT student_id, (SELECT COUNT(*) FROM Weights W2 WHERE w2.student_id I/O์–‘์ด ๋Š˜์–ด๋‚˜ SELECT ๊ตฌ๋ฌธ ์„ฑ๋Šฅ์ด ๋‚˜๋น ์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ตฌํ˜„์˜์กด์  ๋ฐฉ๋ฒ•์ž„ 2) ์ธ๋ฑ์Šค์— ๋ณต์žกํ•œ ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ๋ถ„์‚ฐ๋„๋ฅผ ๋†’์ž„ -> ๋ณต์žกํ•œ ํ•„๋“œ ์ถ”๊ฐ€ํ•  ๊ฒฝ์šฐ ๋ถˆํ•„์š”ํ•œ ์˜๋ฏธ๋ฅผ์ƒ์„ฑํ•˜๋ฏ€๋กœ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Œ ๊ฒฐ๋ก : ๋ฆฌ์Šคํฌ๋ฅผ ์ธ์ง€ํ•˜๊ณ  ์‚ฌ์šฉํ•˜์ž 2. IDENTITY ํ•„๋“œ - ํ…Œ์ด๋ธ”์˜ ํ•„๋“œ๋กœ ์ •์˜ํ•˜๊ณ  .. 2022. 5. 9.