나는이 질문을 SO에서 제기해야하는지 여부를 잘 모릅니다. 그러나 나는 나의 의심에 대해 명확한 생각을 갖고 있지 않다. 레일즈 마이그레이션에 기본값을 설정하지 말고 CTO의 코드 검토 대신 null 값을 사용한다고 들었습니다. 그의 설명은 once the database gets huge enough, migrations with defaults runs slow and may throw database timeout errors
과 같습니다. 하지만 데이터베이스 수준에서는 초기 설정으로 실행하기에 충분히 빠르다고 생각합니다. 내가 맞습니까?레일스 - 레일 마이 그 레이션에서 기본값을 사용해서는 안됩니다
3
A
답변
4
테이블 열 수가 많은 경우 추가 열 마이그레이션에서 기본값을 사용하면 시간이 오래 걸릴 수 있습니다.
이
은 포스트 그레스의 문서에 의해 주어진 팁입니다 : https://www.postgresql.org/docs/9.5/static/ddl-alter.html팁 : 기본적으로 열을 추가하면 테이블의 각 행을 갱신 요구 (새 열 값을 저장하기 위해). 그러나 기본값이 지정되지 않으면 PostgreSQL은 물리적 업데이트를 피할 수 있습니다. 그러므로 기본값이 아닌 값으로 열을 채우려면 기본값이없는 열을 추가하고 UPDATE를 사용하여 올바른 값을 삽입 한 다음 아래에 설명 된대로 원하는 기본값을 추가하는 것이 가장 좋습니다.
0
이 방법을 사용하십시오. 바이트 단위로 기본값의 크기와 비교하여 'NULL'크기가 지정됩니다.
몇 가지 데이터 행의 차이는 KB 이하일 수 있지만 데이터베이스 크기가 클 경우 배율 효과가 있습니다. 따라서 마이그레이션하는 동안 기본값 옵션을 사용하려면 더 많은 작업을해야합니다.
많은 경우 다운 타임 (또는 마이그레이션) 시간이 중요 할 수 있으므로 DBA와 개발자가 사용 가능한 리소스의 최적 사용을 보장하는 역할을합니다. 여기에는 시간이 포함됩니다.
더 명확히하기 위해 더미 데이터베이스와 벤치마킹 도구를 사용하여이를 평가하고 싶을 수도 있습니다.
관련 문제
- 1. Yii 마이 그 레이션에서 기본 coll 값
- 2. alembic 마이 그 레이션에서 모델 액세스
- 3. grails 데이터베이스 마이 그 레이션에서 PLSQL 사용
- 4. 마이 그 레이션에서 저장 프로 시저 만들기
- 5. 코드 첫 번째 마이 그 레이션에서 마이 그 레이션 내역을 사용하는 방법
- 6. 플라스크 마이 그 레이션 또는 알렘 마이 그 레이션에서 시드 데이터 생성
- 7. 레일 3 롱 텍스트로 마이 그 레이션
- 8. alembic : 마이 그 레이션에서 업데이트 문에 하위 쿼리 사용
- 9. 어떻게 마이 그 레이션에서 필드의 크기를 변경할 수 있습니까?
- 10. EF 코드 첫 번째 마이 그 레이션에서 잘못된 오류
- 11. 마이 그 레이션에서 사용자 정의 SQL DML을 올바르게 추가하는 방법
- 12. Alembic 마이 그 레이션에서 SQLAlchemy ORM 사용 : 어떻게합니까?
- 13. Yii2의 마이 그 레이션에서 특정 열을 charset으로 설정하는 방법
- 14. 코드 첫 번째 마이 그 레이션에서 데이터베이스의 이름을 얻는 방법
- 15. 저지는 양식 매개 변수를 사용해서는 안됩니다. 예외
- 16. iPad 앱을 iPhone에 설치/사용해서는 안됩니다.
- 17. StandardXAConnectionHandle : EJBServer 외부에서 prepareStatement를 사용해서는 안됩니다.
- 18. "대문자 변수 식별자는 일반적으로 패턴에서 사용해서는 안됩니다 ..."
- 19. InternetGetConnectedState 및 "서비스에서 사용해서는 안됩니다."문을
- 20. MySQL - 암호 변경 - 이전 PW를 사용해서는 안됩니다.
- 21. 레일 3 : 마이 그 레이션을 사용하여 테이블 놓기
- 22. 레이크 또는 레일 db : 마이 그 레이션
- 23. 레일 외래 키 마이 그 레이션
- 24. 스키마 필드가 레일 마이 그 레이션시에 정렬
- 25. 레일 테이블 및 마이 그 레이션 삭제
- 26. 레일 4 수동으로 마이 그 레이션을 생성
- 27. 비트 마스크를 저장할 루비 유형은 무엇입니까? 마이 그 레이션에서 bigint 또는 무엇을 사용합니까?
- 28. 레일 : 초기 개발 단계에서 마이 그 레이션 수정
- 29. 레일에서 역순으로 모든 마이 그 레이션을 실행하는 방법 3.1
- 30. 마이 그 레이션 오류에 대해서만 FlywayException을 분리