2013-05-27 3 views
0

Solr의 인스턴스가 MySQL 데이터베이스를 쿼리하여 해당 데이터베이스를 업데이트 한 직후에 인덱스를 새로 고치지 만 Solr 쿼리가 바로 전에 변경된 내용을 보지 못하는 문제가 있습니다.MySQL이 다시 쓰도록 강제하십시오.

Solr이 다른 데이터베이스 연결을 사용하는 것과 같은 문제가 있다고 상상해보십시오. 다른 연결을하기 전에 어떻게 변경이 "커밋"(트랜잭션을 사용하지 않고 그냥 mysql_query)이 될 수 없습니다. 그것을보십시오. 충분히 오래 sleep() 전화를 걸면 의 시간이 대부분이되지만 분명히 허용되지 않습니다.

계속하기 전에 데이터베이스 쓰기/업데이트/비우기를 강제로 호출 할 수있는 PHP 또는 MySQL 함수가 있습니까?

+0

마스터/슬레이브 구성을 사용합니까? – SteAp

+0

나는 이것을 모르겠다. 나는 이것을 설정하지 않았다. 아마도 인덱스는 마스터 MySQL 데이터베이스를 기반으로 구축됩니다. – devios1

답변

1

Solr을 사용하여 SET TRANSACTION ISOLATION LEVEL = READ-COMMITTED을 사용하면 업데이트 된 데이터를보다 신속하게 볼 수 있습니다.

JDBC URL의 transactionIsolation 속성을 사용하여이 작업을 수행 할 수 있어야합니다.

+0

연결 문자열 url에'& transactionIsolation = TRANSACTION_READ_COMMITTED'을 (를) 추가하려고했지만 어떤 효과가 있는지 알 수 없습니다. 좀 더 노골적으로 표현할 수 있습니까? – devios1

관련 문제