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 컬럼 λ°”λ‘œ 뒀에 μΆ”κ°€λ©λ‹ˆλ‹€.