내 질문에 다소 모호하지만, 국가/주소를 관리하는 것이 실제로 매우 일반적이기 때문에 실제 설정에 대한 조언을 받고 싶습니다.데이터베이스를 관리하는 방법
"국가"열이있는 데이터베이스가 있는데, 이전에는 중형 int 유형으로 국가 (ID, 이름 및 ISO3166-1 alpha2 코드 주로)에 대한 실제 정보가있는 다른 테이블의 외래 키 역할을합니다.
일부 테스트 및 벤치마킹을 마친 후에 필자는 모든 국가 정보를 PHP 파일 배열 대신 필요에 따라 필요로하고 결국 데이터베이스 검색보다 1 ~ 2 배 더 빨랐습니다. (그들은 278 개국이다).
분명히 더 나은 접근법이지만 사람들이 일반적으로 파일 대신 테이블에서 읽는 이런 종류의 일을하는 경향이 있기 때문에 뭔가 잘못된 것처럼 느껴집니다. 그러나 나는 그것이 무엇인지 알아낼 수 없습니다. 유지 보수가 용이합니까?
또한 숫자 ID 대신 2 글자 ISO 코드를 키로 생각했습니다. 사람이 읽을 수 있고 고유합니다. 내가 400.000 행 테이블에서 눈에 띄는 성능 손실을 볼 수 내 데이터베이스가 커지면이 오류가 끝날까요?
country 테이블을 사용하여 데이터베이스를 쿼리 한 적이 있습니까? 하나는 select에 참여하거나 두 개의 select는 선택 사항입니까? 외래 키 열에 인덱스를 사용 했습니까? –
그리고 컨트리 테이블의 기본 키를 설정 했습니까? 1000 개의 루프마다 PHP 국가 파일을 필요로 했습니까? 아니면 한 번 필요합니다. 그런 다음 동일한 PHP 프로세서 호출 중에 1000 개의 짧은 루프를 작성 했습니까? –
예 열의 색인이 생성되고 실제로 조인도 아니고 2 개의 선택도 아니 었습니다. 나는 이것을 WHERE 절의 조건과 같이 'SELECT * FROM table where country = 253'과 같이 사용하고 심지어 파일을 요구하는 것이 더 빠릅니다. 그리고 나는 그 파일을 한 번 필요로했다. – aleation