νλ‘μ νΈ κ°λ° λμ€, ν μ¬λλΉ νλμ κ³μ κ³Ό λ©€λ² μμμ κ°μ§ μ μλλ‘ νκΈ° μν΄μ, unique ν€λ₯Ό μ€μ νλ €κ³ νμ΅λλ€.
λΉμ unique ν€λ‘ μ§μ ν κ²μ, μ΄λ¦κ³Ό tel1, tel2, tel3μ κ°μ μ νλ²νΈλ₯Ό κΈ°μ€μΌλ‘ unique ν€λ₯Ό μ ννμ΅λλ€. κ·Έλ¬μ νλ¨κ³Ό κ°μ μ€λ₯κ° λ°μνμ΅λλ€.
Specified key was too long; max key length is 1000 bytes
μ°μ , λΉμ Javaμμ μν°ν° κ°μ²΄λ₯Ό μμ±ν λ μ΄λ¦κ³Ό tel1, tel2, tel3μ λν΄μ String νμ μΌλ‘ μ€μ νκ³ μ΄λ ν μ νμ λμ§ μμμ΅λλ€.
JPAμμ spring.jpa.hibernate.ddl-auto=create μ΅μ
μΌλ‘ μλμΌλ‘ ν
μ΄λΈμ μμ±ν λ MyISAM μμ§μ μ¬μ©νλ€λ©΄, μΊλ¦ν°μ
μ΄ utf8mb4λ‘ λ§λλλ€. utf8 μ΄λ©΄ 1κΈμλΉ 3λ°μ΄νΈ μΈ λ°λ©΄, utf8mb4λ 4λ°μ΄νΈμ
λλ€.
λ°λΌμ String νμ
μΌλ‘ μ€μ ν ν΄λΉ 컬λΌμ νμ
μ΄ varchar(255)λ‘ μ€μ λκ³ , μ΄λ 255*4 κ° 1020 μ μ‘κ²λμ΄ 1000 λ°μ΄νΈλ₯Ό μ΄κ³Όνλ©΄μ μμ κ°μ μλ¬κ° λ°μν κ²μ
λλ€.
첫 λ²μ§Έλ‘ ν΄κ²°ν κ²μ, length μ‘°μ μ λλ€.
λ§ κ·Έλλ‘, max key lengthκ° 1000 λ°μ΄νΈλ‘ μ νμ΄ κ±Έλ €μμΌλ, unique ν€λ‘ μ€μ νλ €λ λμμ λν΄μ κΈΈμ΄ μ νμ κ±Έλ©΄ λ©λλ€.
μ΄λ¦μ λλΆλΆ 3κΈμμ΄λ©°, μ무리 νΉμν κ²½μ°λΌλ 10κΈμ μ΄μ λμ΄κ°μ§ μμ΅λλ€. λν μ νλ²νΈμ κ°μ κ²½μ°, tel1, tel2, telλ κ°κ° 3μ리, 4μ리, 4μ리λ₯Ό ν¬ν¨νλ―λ‘ lengthλ‘ κΈΈμ΄ μ νμ λλ©΄ λ©λλ€.
μ΄λ¬ν λ³νλ₯Ό μ€ μ΄ν, ν΄λΉ μ€λ₯κ° μ¬λΌμ§κ³ μ μ€μ λ κ²μ νμΈν μ μμμ΅λλ€.
λ λ²μ§Έ ν΄κ²° λ°©λ²μΌλ‘, InnoDBλ‘μ λ³κ²½μ λλ€.
κΈ°μ‘΄μ application.yml μ€μ μ€ μΌλΆμ λλ€.
spring:
jpa:
database-platform: org.hibernate.dialect.MySQLDialect
hibernate:
ddl-auto: create
properties:
hibernate:
format_sql: true
dialect: org.hibernate.dialect.MySQL5Dialect
database-platformκ³Ό properties.hibernate.dialectλ₯Ό MySQL5InnoDBDialectλ‘ λ³κ²½ν΄μ£Όλ©΄, MyISAMμ΄ μλλΌ InnoDBλ₯Ό μ¬μ©ν μ μμ΅λλ€.
spring:
jpa:
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
hibernate:
ddl-auto: create
properties:
hibernate:
format_sql: true
dialect: org.hibernate.dialect.MySQL5InnoDBDialect
- MyISAMμ μ λν¬ ν€ λ°μ΄νΈ μ ν : 1000 λ°μ΄νΈ μ ν
- InnoDBμ μ λν¬ ν€ λ°μ΄νΈ μ ν : 3072 λ°μ΄νΈ μ ν (λ κ° μ΄μμ μ΄μ ν¬ν¨νλ μΈλ±μ€μ κ²½μ°)
λ°λΌμ, MyISAMμμ InnoDBλ‘μ μ νλ§μΌλ‘λ, μ λν¬ ν€μ λ°μ΄νΈ μ νμ κ°μ μν¬ μ μμ΅λλ€.