2010-02-16 3 views
3

랩톱에서 작은 WAMP 웹 응용 프로그램을 개발하고있었습니다. 여기서 mySQL 인스턴스가 실행되고 있고 내 DB 엔진에 InnoDB를 선택했습니다. 몇 주 동안의 개발이 끝나고 나면 공개적으로 사용 가능하게하고 싶었고 내 웹 호스트가 제공하는 데이터베이스 서버가 MyoAM만을 지원하는 InnoDB를 지원하지 않는다는 것을 알았습니다.InnoDB는 webhost에서 지원하지 않습니다. 지금 뭐야?

내 랩톱의 innoDB 스키마에서 생성 된 생성 및 채우기 스크립트는 실제 데이터베이스에 대해 실행될 때 개별 테이블을 생성 할 수 있지만 VIEW 생성시 문제가 발생합니다. 뷰는 MyISAM에서 지원되지 않습니까? 나는 외래 키가 없다는 것을 안다. 이것이 InnoDB를 선택하게 된 이유입니다 ... myISAM으로 innoDB 스키마 디자인을 만들 수있는 가능성은 무엇입니까?

전체 스키마를 하나의 저장소 엔진에서 다른 저장소 엔진으로 변환하는 간단한 방법이 있습니까? innoDB를 지원하는 mysql db를 제공하는 또 다른 웹 호스트를 찾아야합니까?

답변

6

귀하의 옵션 :

  1. 가 (때로는 그들이 당신을 위해 그것을 할 것입니다 또는 이노을 지원하는 서버에 계정을 이동) 자신의 서버에 이노를 활성화 할 수 있습니다 경우 웹 호스팅 제공 업체에 문의하십시오.
  2. InnoDB를 지원하는 새로운 웹 호스팅 제공 업체를 찾으십시오.
  3. PHP에서 외래 키 종속성을 처리하십시오 (예 : Zend_Db 및 Zend_Db_Table을 사용하여 데이터베이스 작업을 할 수 있습니다. 올바르게 설정 한 경우 이러한 클래스는 외래 키 종속성을 자동으로 처리 할 수 ​​있습니다).
  4. 애플리케이션을 MyISAM 테이블로 변환하십시오.

개인적으로 4 번이 최악의 해결책이라고 생각합니다. 요즈음 InnoDB를 지원하는 많은 웹 호스팅 제공 업체가 있으므로 MyISAM으로 작업하기 위해 많은 응용 프로그램을 다시 코딩하는 것은 시간 낭비 일 것입니다. 이것은 물론 애플리케이션이 얼마나 크고 복잡한 지에 달려 있습니다. 상대적으로 작은 경우 나쁜 생각이 아닐 수도 있습니다.

나는 아마 새로운 웹 호스팅 공급자를 찾을 것입니다.

+0

감사합니다. 나는 1 번을 좋아한다. 웹 주인에게 연락해서 그것에 대해 물을 것이다. 실패하면 2 번과 함께 갈 것이며 3 번에서 4 번까지의 숫자는 피하고 싶을 것입니다. –

0

InnoDB와 MyISAM에 관한 정보가 아닙니다. 뷰는 두 테이블 유형 모두에서 지원됩니다. 나는 버전 문제 (Views [...] are available in MySQL Server 5.0) 또는 grant tables에 관한 것 같아요.

정확한 오류 메시지를 게시하면 도움이됩니다.

+0

사실, 뷰는 두 테이블 유형 모두에서 작동해야하지만 외래 키를 언급했습니다. –

+0

그의 질문은 명확하지 않습니다. 그는 * MyISAM에서 지원되지 않는보기가 있습니까? *, 그래서 대답했다. 그때 그는 말합니다 * 나는 외래 키가 * 아는 것이 아닙니다. 그것은 그가 사용하지 않는 스키마를 디자인했는지, 아니면 사용하도록 요구 했는가? –

2

예, 그렇지만 InnoDB에는 테이블 잠금이 아닌 트랜잭션과 행 잠금과 같은 여러 가지 기능이 있습니다.