Home > DB > ๐Ÿ’พ[Database] ์ด๋ฏธ ์ƒ์„ฑ๋œ ํ…Œ์ด๋ธ”์— ์ƒˆ๋กœ์šด ์ปฌ๋Ÿผ ์ถ”๊ฐ€ํ•˜๊ธฐ.

๐Ÿ’พ[Database] ์ด๋ฏธ ์ƒ์„ฑ๋œ ํ…Œ์ด๋ธ”์— ์ƒˆ๋กœ์šด ์ปฌ๋Ÿผ ์ถ”๊ฐ€ํ•˜๊ธฐ.
Database Database Optimization

๐Ÿ’พ[Database] ์ด๋ฏธ ์ƒ์„ฑ๋œ ํ…Œ์ด๋ธ”์— ์ƒˆ๋กœ์šด ์ปฌ๋Ÿผ ์ถ”๊ฐ€ํ•˜๊ธฐ.

๐Ÿ“Œ Intro.

CREATE TABLE search_pages
(
	id      BIGINT PRIMARY KEY,
	title   VARCHAR(255) NOT NULL,
	episode VARCHAR(100) NOT NULL,
	content TEXT         NOT NULL,
	tags    VARCHAR(255) NOT NULL,
	FULLTEXT idx_search (title, episode, content, tags) WITH PARSER ngram
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4
  COLLATE = utf8mb4_general_ci;
  • โ†˜๏ธŽ ์œ„์™€ ๊ฐ™์€ ํ…Œ์ด๋ธ”์„ ์ด๋ฏธ ๋งŒ๋“ค์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ๋‚˜๋จธ์ง€ ๊ธ€์„ ์ด์–ด ๋‚˜๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ™Œ

โœ… ALTER TABLE ๋ฌธ ์‚ฌ์šฉํ•˜๊ธฐ.

  • โ†˜๏ธŽ ์ปฌ๋Ÿผ์„ ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ALTER TABLE๋ฌธ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • โ†˜๏ธŽ ์˜ˆ์‹œ:
      ALTER TABLE 'table_name'
      ADD COLUMN 'column_name' VARCAHR(255) NOT NULL;
      
  • โ†˜๏ธŽ ์ด๋ฒˆ์—๋Š” ์‹ค์ œ๋กœ ์œ„ ํ…Œ์ด๋ธ”์— created_at ์ด๋ผ๋Š” ์ปฌ๋Ÿผ์„ ์ถ”๊ฐ€ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
    • โ†˜๏ธŽ ์‹ค์ œ ์ฝ”๋“œ:
      ALTER TABLE search_pages
      ADD COLUMN created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
      
  • โ†˜๏ธŽ ์„ค๋ช…
    • โ†˜๏ธŽ 1. ADD COLUMN : ํ…Œ์ด๋ธ”์— ์ƒˆ๋กœ์šด ์ปฌ๋Ÿผ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
    • โ†˜๏ธŽ 2. TIMESTAMP DEFAULT CURRENT_TIMESTAMP : ์ƒˆ ์ปฌ๋Ÿผ์˜ ํƒ€์ž…์„ TIMESTAMP๋กœ ์„ค์ •ํ•˜๊ณ  ๊ธฐ๋ณธ๊ฐ’์„ ํ˜„์žฌ ์‹œ๊ฐ„(CURRENT_TIMESTAMP)์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

โœ… ์ปฌ๋Ÿผ์˜ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด? ๐Ÿ™‹โ€โ™‚๏ธ

  • โ†˜๏ธŽ ์ปฌ๋Ÿผ์„ ํ…Œ์ด๋ธ”์˜ ํŠน์ • ์œ„์น˜์— ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด AFTER ๋˜๋Š” FIRST๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • โ†˜๏ธŽ ์˜ˆ์‹œ:
      ALTER TABLE search_pages
      ADD COLUMN created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP AFTER tags;
      
  • โ†˜๏ธŽ ์ด ๊ฒฝ์šฐ, created_at ์ปฌ๋Ÿผ์€ tags ์ปฌ๋Ÿผ ๋ฐ”๋กœ ๋’ค์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.