2012-03-24 2 views
0

Joomla 사이트에 기사를 추가하는 JAVA 애플리케이션을 작성했습니다.
제 문제는 기사를 삽입하는 데 5 개의 쿼리가 필요하다는 것입니다 (기사를 추가하려면 content 테이블에 문서 추가, assets 테이블에 해당 노드 삽입, 다른 노드는 assets 테이블 & 삽입 된 기사의 자산 ID 설정). 그리고 그 때문에 내 JAVA 응용 프로그램이 원격 컴퓨터에서 실행되고 있기 때문에 많은 질문들이 & 중 하나라도 실패하면 전체 assets 테이블 나누기가 실패 할 수 있습니다.
이 문제를 해결하기 위해 트랜잭션과 수동 커밋을 사용할 생각 이었지만 Joomla의 저장소 엔진 (MyISAM)은 트랜잭션을 지원하지 않습니다. 이 두 테이블의 스토리지 엔진을 "InnoDB"로 변환하려고 생각했습니다.
맞습니까? 그것은 Joomla (예를 들어, MyISAM을 사용하는 다른 테이블과 조인)의 문제를 일으키지 않습니까? 사이트에 영향을 미치며 속도가 느려 집니까?
다른 해결책이 있습니까 (예 : 5 개의 검색어를 모두 서버로 보내면 순서대로 실행)?Joomla 테이블 엔진을 InnoDB로 바꾸기

감사

답변

1

일부의 생각 :

  1. 내가 완전히 확실하지 오전하지만 줌라가 InnoDB에 어떤 문제가해야한다고 생각하지 않습니다. MySQL JOIN에서 MyISAM과 InnoDB 테이블을 조인 할 때 MySQL은 내부적으로 InnoDB를 MyISAM으로 변환한다. 하지만 나는 Joomla 사람이 아니며 여전히 확신 할 수 없다.

  2. content에서 트리거를 사용하지 않는 이유는 무엇입니까?

  3. 당신은 어떤 트랜잭션 지원

  4. 에게 모든 5 INSERT들을 실행하기위한 저장 프로 시저를 쓸 수 있지만 다시 없을 것 모두 5 개 INSERT 쿼리에서 모든 데이터를 보유 할 수있는 단일 테이블을 만듭니다. 물론이 표는 간헐적 인 성격을 띤 것입니다. 이제이 중간 테이블의 모든 데이터를 해당 테이블로 마이그레이션 할 다른 저장 프로 시저를 만듭니다.

위의 의미를 실현하십시오!

+0

안녕하세요, 감사합니다. joomla의 쿼리에 트리거가 문제가되지 않습니까? 내 AFTER INSERT 트리거를 만들 때 내 원격 응용 프로그램 쿼리 (실행해야 함)와 joomla 자체 쿼리 (실행하지 않아야 함) 모두에서 실행됩니다. 원격 응용 프로그램 쿼리에서만 실행되도록 트리거를 구성 할 수 있습니까? – RYN

관련 문제