2012-08-28 11 views
9

내 사이트가 VDS 서버에서 실행됩니다. 나는 방금 MySQL 서버가 InnoDB 엔진을 지원하지 않는다는 것을 알게되었으므로 어플리케이션에서 데이터베이스 트랜잭션을 사용할 수 없다.거래가없는 경우 (MyISAM)

사람들이 트랜잭션을 사용하지 않을 수도 있습니다. 이 경우인가요? 그렇다면 MyISAM의 다른 테이블에서 관련 작업을 어떻게 조정할 수 있습니까?

그렇지 않으면 VDS에서 실행되는 MySQL 서버에 InnoDB를 설치할 수 있습니까?

감사합니다.

+0

귀하의 VDS가있는 호스팅 제공 업체는 누구입니까? – theon

+0

VDS64.com -이 사람들은 훌륭합니다. – Webmezha

답변

11

트랜잭션이 필요한 경우 트랜잭션이 필요하고 MyISAM은 겨자를 자르지 않습니다.

일부 애플리케이션은 트랜잭션이 필요하지 않습니다. 예를 들어; 한 번에 둘 이상의 관련 SQL 문을 실행하지 않으며 여러 SQL 문을 롤백 할 필요가없는 응용 프로그램입니다. 또 다른 예는 MySQL을 간단한 키 - 값 저장소로 사용하는 응용 프로그램입니다. 데이터베이스 수준 트랜잭션 지원이 필요하지 않은 많은 유스 케이스가 있습니다.

VDS에 대한 자세한 내용을 알지 못하면 질문의 두 번째 부분에 대답하기가 어렵습니다. 당신은 누구를 호스팅하고 있습니까? my.cnf를 변경할 수있는 셸 액세스 권한이 있습니까? 그렇지 않다면 아마도 InnoDB를 사용할 수 없을 것이다. 그렇다면 여기 MySQL에 InnoDB를 활성화하는 방법을 자세히 설명한 또 다른 대답이있다. How to enable INNODB in mysql

+0

감사! my.cnf **에서'skip-innodb'을'innodb = ON'으로 변경하고 테이블을 변환 했으므로 이제는 모든 것이 잘 작동합니다! – Webmezha

4

엔진을 활성화하거나, InnoDB 구성 요소를 수동으로 설치하거나, ​​다음을 포함하는 MySQL 버전을 간단히 다시 설치할 수있다. 그 엔진은 기본적으로. MyISAM은 crazypants 데이터베이스입니다. 시스템이 제대로 종료되지 않으면 어리석게 빠르지 만 신뢰할 수없고 파괴되기 쉽습니다.

MyISAM에서 중요한 애플리케이션을 실행하는 것은 대단히 나쁜 생각입니다. 성능상의 이유로 MyISAM 테이블이 필요한 곳에서는 항상 더 신뢰할 수있는 다른 데이터 소스에서 쉽게 재사용 할 수 있어야합니다.