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

๐Ÿ›ข DB์— ํ•ด๋‹นํ•˜๋Š” ๊ธ€๋“ค

29 Articles matched
๋ชฉ๋ก์ด ์—†์Šต๋‹ˆ๋‹ค.
[SQL] ๋Œ€์ฒด๋ณ€์ˆ˜ (&) ๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋„ฃ๊ธฐ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์„ ๋•Œ์— ์ฝ”๋ฉ˜ํŠธ(์ฃผ์„)์ด๋‚˜ ๋ฐ์ดํ„ฐ ์•ˆ์— "&"๊ฐ€ ๋ฌธ์ž์—ด๋กœ ๋“ค์–ด๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ DBMS ํˆด์—์„œ๋Š” ํ•ด๋‹น ๋ฌธ์ž์—ด์„ ๋Œ€์ฒด๋ณ€์ˆ˜๋กœ ์ธ์‹ํ•˜๊ณ ๋Š” ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒŒ ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์ด ๊ท€์ฐฎ์€๋ฐ,, ๋Œ€์ฒด๋ณ€์ˆ˜๋กœ ์ธ์‹ํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๊ตฌ๊ธ€๋ง์„ ํ•˜๋ฉด ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ๋งž๋Š” ๋ฐฉ๋ฒ•์ธ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์‹ค์ œ๋กœ ๋งŽ์ด๋“ค ๊ทธ๋ ‡๊ฒŒ ์“ฐ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ €๋Š” ๋” ์‰ฝ๊ณ  ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. (์ด๊ฑฐ๋Š” ์ง„์งœ ์ด๋ ‡๊ฒŒํ•˜๋Š”๊ฒŒ ๋งž๋Š”๊ฑด์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์Œ.. ์•ฝ๊ฐ„ ๊ผผ์ˆ˜๊ฐ™์€ ๋Š๋‚Œ) ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด INSERT๋ฌธ์„ ์ž…๋ ฅํ•˜๊ฒ ์ง€์š”? insert into table(a, b, c) values ('testA', 'testB', 'testC&D'); ์ €๋Š” sqlGate ํˆด์„ ์ด์šฉํ•ด์„œ ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜..
[MySQL] ERROR 1118 (42000) : Row size too large (> 8126). Changing some columns to TEXT or BLOB my help. In current row format, BLOB prefix of 0 bytes is stored inline. ์ œ๋ชฉ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ mysql์ด๋‚˜ mariadb์—์„œ ์–ด๋–ค ํŠน์ • ํ…Œ์ด๋ธ”์˜ ์ „์ฒด column์˜ ํฌ๊ธฐ๋ฅผ ํ•ฉ์นœ๊ฒŒ mysql์ด๋‚˜ mariadb์— ์„ค์ •๋œ ํ…Œ์ด๋ธ”๋‹น ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ๋„˜์€ ์ƒํƒœ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ •ํ™•ํžˆ๋Š” Engine์ด innodb๋กœ ๋œ ํ…Œ์ด๋ธ”์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ด๋Ÿด๋•Œ๋Š” ํ•ด๊ฒฐ๋ฐฉ์•ˆ์ด 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ํ•ด๊ฒฐ๋ฐฉ์•ˆ 1 ์—๋Ÿฌ ๋กœ๊ทธ์—๋„ ๋‚˜์™€์žˆ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, varchar๋กœ ์„ ์–ธ๋˜์–ด์žˆ๋Š” ์ปฌ๋Ÿผ๋“ค ์ค‘์—์„œ ํฌ๊ธฐ๊ฐ€ ํฐ ์ปฌ๋Ÿผ์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ TEXT๋‚˜ BLOB์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. TEXT๋‚˜ BLOBํƒ€์ž…์€ ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ์— ์ €์žฅ๋˜์ง€ ์•Š๊ณ  ๋ณ„๋„์˜ ๊ณต๊ฐ„์— ๋ถ„๋ฆฌ๋˜์–ด ์ €์žฅ๋œ๋‹ค๊ณ  ํ•œ๋‹ค(?) ์ •ํ™•ํžˆ ๋ฌด์Šจ ์˜๋ฏธ์ธ์ง€๋Š” ์•„์ง ์ž˜ ๋ชจ๋ฅด์ง€๋งŒ.. ์ด๋ ‡๊ฒŒ ํ•จ์œผ๋กœ์จ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•ด๊ฒฐ๋ฐฉ์•ˆ 2 my.cnf(my.ini) ์„ค์ •์„ ์ˆ˜์ •ํ•ด์ค€๋‹ค. ..
[MySQL/MariaDB] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์šฉ๋Ÿ‰ ๋ณด๊ธฐ, ํ…Œ์ด๋ธ” ๋ณ„ ์šฉ๋Ÿ‰ ํ™•์ธ ์„œ๋ฒ„ ๊ด€๋ฆฌ๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์šฉ๋Ÿ‰์˜ ์–ผ๋งˆ๋‚˜ ๋˜๋Š”์ง€ ๋˜๋Š” ์–ด๋–ค ํ…Œ์ด๋ธ”์˜ ์šฉ๋Ÿ‰์ด ์–ผ๋งˆ๋‚˜ ๋˜๋Š”์ง€๊ฐ€ ๊ถ๊ธˆํ•  ๋•Œ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ์— ์„œ๋ฒ„์— ์ ‘์†ํ•˜์ง€ ์•Š๊ณ  ์ฟผ๋ฆฌ๋งŒ์œผ๋กœ ์•Œ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์–ด์„œ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ณ„ ์šฉ๋Ÿ‰ ํ™•์ธ SELECT table_schema "Database Name", SUM(data_length + index_length) / 1024 / 1024 "Size(MB)" FROM information_schema.TABLES GROUP BY table_schema; ํ…Œ์ด๋ธ”๋ณ„ ์šฉ๋Ÿ‰ ํ™•์ธ SELECT concat(table_schema,'.',table_name), concat(round(data_length/(1024*1024*1024),2),'G') DATA, c..
[MySQL/MariaDB] ํŠน์ • ์ปฌ๋Ÿผ์˜ ํŠน์ • ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•˜๊ธฐ (๋‚ด๋ง˜๋Œ€๋กœ ์ •๋ ฌํ•˜๊ธฐ) ์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•ด DB์—์„œ ์กฐํšŒ๋ฅผ ํ•  ๋•Œ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์ˆœ์„œ๋Œ€๋กœ ๊ตฌ์ฒด์ ์œผ๋กœ ๋งํ•˜์ž๋ฉด ํŠน์ • ํ•„๋“œ์˜ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ์„ ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ ORDER BY ์ ˆ์— FIELD๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด์„œ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ORDER BY FIELD ์˜ˆ๋ฅผ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ์˜ ํ…Œ์ด๋ธ” TB_EXAMPLE์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •์„ ํ•ด๋ด…๋‹ˆ๋‹ค. TB_EXAMPLE SEQ, NAME, STATUS ๋ฐ์ดํ„ฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. (1, 'TEST1', 'ST01') (2, 'TEST2', 'ST01') (3, 'TEST3', 'ST01') (4, 'TEST4', 'ST03') (5, 'TEST5', 'ST02') (6, 'TEST6', 'ST01') ์ด๋Ÿฐ ์ƒํ™ฉ์—์„œ ๋ณดํ†ต STATUS๋ผ๋Š” ์ปฌ๋Ÿผ์„ ๊ธฐ์ค€์œผ..
[MYSQL, MARIADB] log ์ƒ๋žต (disable logging) mysql๋‚˜ mariadb๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š”๋ฐ ์—„์ฒญ๋‚œ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ insertํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ DB์„œ๋ฒ„์— DB๋งŒ ์กด์žฌํ•˜๋Š”๊ฒƒ์ด ์•„๋‹ˆ๊ณ  Elasticsearch๋ฉฐ ์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ•จ๊ป˜ ์˜ฌ๋ผ๊ฐ€์žˆ์—ˆ๋Š”๋ฐ ES์—์„œ ๊ฐ€์žฅ ๋จผ์ € ๋ฐ˜์‘์ด ์™”์Šต๋‹ˆ๋‹ค. disk๊ฐ€ 95% ์ด์ƒ ์‚ฌ์šฉ์ค‘์ธ ์ƒํƒœ๊ฐ€ ๋˜์–ด๋ฒ„๋ฆฌ๋ฉด ES์—์„œ๋Š” ๋ชจ๋“  ์ธ๋ฑ์Šค๋ฅผ read-only ์ƒํƒœ๋กœ ์ „ํ™˜์ด ๋˜๋Š” ํ˜„์ƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋””์Šคํฌ๊ฐ€ ์ €๋ ‡๊ฒŒ ๋งŽ์€ ์šฉ๋Ÿ‰์„ ์ ์œ ํ•˜๊ฒŒ ๋œ ์›์ธ์„ ์ฐพ์•„๋ณด๋‹ˆ mariadb์˜ log์— ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. mariadb๋Š” insert๋‚˜ update ์ฆ‰ DML ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด undo๋ฅผ ์œ„ํ•ด์„œ ๋งŽ์€ log๋ฅผ ์Œ“๊ฒŒ ๋˜๋Š”๋ฐ์š”, ๋งŒ์•ฝ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์Œ“๋Š”๋ฐ ์ €์ฒ˜๋Ÿผ log๊ฐ€ ํ•„์š”์—†๋‹ค๊ฑฐ๋‚˜ ํ•˜๋Š” ๊ฒฝ์šฐ log๋ฅผ ์ƒ๋žต(disabl..
[MySQL] ํ…Œ์ด๋ธ” ๋ณต์‚ฌ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋งŒ ๋ณต์‚ฌ CREATE TABLE NEW_TABLE_NAME LIKE OLD_TABLE_NAME; ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๋งŒ ๋ณต์‚ฌ INSERT INTO DESTINATION_TABLE_NAME (SELECT * FROM SOURCE_TABLE_NAME); ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ๋ฐ ๋ฐ์ดํ„ฐ ๋ณต์‚ฌ CREATE TABLE NEW_TABLE_NAME (SELECT * FROM OLD_TABLE_NAME);
[MySQL] ERROR 1267 (HY000): Illegal mix of collations ํ•ด๊ฒฐ ๊ฐ€๋” ๋ฐ์ดํ„ฐ๋ฅผ ์ •์ œํ•  ๋•Œ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•ด์„œ ์ •์ œํ•  ํ…Œ์ด๋ธ”์— UPDATE๋ฌธ์œผ๋กœ ์ˆ˜์ •ํ•ด์ฃผ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๋ฐ์š” ์ด๋Ÿด ๋•Œ ๊ฐ€๋” ์ •์ œํ•˜๋ ค๋Š” ํ…Œ์ด๋ธ”๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ํ…Œ์ด๋ธ”์˜ Collation์ด ๋‹ฌ๋ผ์„œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ํฌ์ŠคํŒ…์˜ ์ œ๋ชฉ์ด ๋ฐ”๋กœ ๊ทธ ์—๋Ÿฌ์ธ๋ฐ์š” ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•˜๋Š”์ง€ ์•Œ์•„๋ด…์‹œ๋‹ค. ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ERROR 1267 (HY000): Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '=' ์œ„์˜ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋Š” ๋ณดํ†ต ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ๋Š” Collation์ธ๋ฐ์š” ํ…Œ์ด๋ธ”์„ ์กฐํšŒํ•  ๋•Œ ์กฐ๊ฑด์ ˆ์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ Collation์˜ ๊ฐ’์„ ๋น„๊ตํ•˜๋ฉด ๋‚˜์˜ค๋Š” ์—๋Ÿฌ์ž…๋‹ˆ๋‹ค. ํ•ด๊ฒฐ ..
[MySQL] procedure, function, trigger ๋ฐฑ์—…ํ•˜๊ธฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฑ์—… ํ›„ ๋ณต๊ตฌ๋ฅผ ํ–ˆ๋Š”๋ฐ ์‹œ์Šคํ…œ์ด ์ •์ƒ์ ์œผ๋กœ ๋Œ์•„๊ฐ€์ง€ ์•Š๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ๋ฅผ ๋ณด๋‹ˆ ํ”„๋กœ์‹œ์ €๊ฐ€ ์—†๋‹ค๊ณ  ์ฐํ˜€์žˆ๋”๊ตฐ์š”. ๊ตฌ๊ธ€์—๊ฒŒ ํ”„๋กœ์‹œ์ €๋ฅผ ๋ฐฑ์—…ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฌผ์–ด๋ณด๋‹ˆ ์—ญ์‹œ๋‚˜ ๊ธˆ๋ฐฉ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊นŒ๋จน์ง€ ์•Š๊ธฐ ์œ„ํ•ด์„œ ์ •๋ฆฌํ•ด๋†“์•„ ๋ด…๋‹ˆ๋‹ค. 1. ํ…Œ์ด๋ธ”(Table) ํฌํ•จ ๋ฐฑ์—…(Backup) ## procedure, function, trigger ํฌํ•จํ•œ ๋ฐฑ์—…ํ•˜๊ธฐ(์˜ต์…˜ --routines --trigger) $ mysqldump --routines --triggers -u์œ ์ €์ด๋ฆ„ -pํŒจ์Šค์›Œ๋“œ DB๋ช… > ๋ฐฑ์—…ํŒŒ์ผ ## ์˜ˆ์‹œ $ mysqldump --routines --triggers -u apptm -p db_name > db_name_backup.sql $ mysqldump --routines..