2014-12-04 2 views
0

로컬 웹 사이트에서 html 형식의 입력을 통해 mysql 데이터베이스를 쿼리합니다. 양식 값은 jQuery를 통해 php로 보내 져서 쿼리를 호출합니다. 웹 사이트가 새로 고침되면 쿼리를 죽이기 위해 mysql 서버에 명령을 보내는 방법이 있습니까?웹 사이트가 새로 고쳐지면 php-mysql 서버가 실행되지 않습니다.

현재 새로 고침하면 마지막 mysql 호출이 계속 실행되므로 해당 쿼리가 완료 될 때까지 웹 사이트가 잠길 수 있습니다.

편집 : 웹 사이트에 대한 약간의 배경 정보를 제공하기 위해 대규모 데이터베이스 (일련의 모든 테이블)에 일련의 관련 검색어 (전체 텍스트 검색이 많음)를 기반으로 한 d3 시각화 만 실행하는 로컬 웹 사이트입니다. 1 ~ 5 백만 건의 기록 범위). 내가 말한 "잠금"은 검색어를 포기하거나 더 효율적인 검색어 (즉, 내 결과를 더 많이 제한하는 무언가)를 시도 할 수 없다는 의미입니다.

+1

검색어를 수정하지 않는 이유는 무엇입니까? 왜 그렇게 오래 걸리는 쿼리가 있습니까? –

+0

이 질문/답변 귀하의 질문에 대답 : http://stackoverflow.com/questions/14892874/mysql-close-connect-can-not-halt-the-insert-activity – Peter

답변

1

아마도 (일반적으로 MySQL 프로세스 목록에서 마지막 프로세스 ID를 선택하고 해당 프로세스 ID에서 KILL QUERY를 발행하는 것과 관련이 있습니다.)하지만 먼저 해결해야한다고 생각되는 문제가 있습니다.

시작하려면 왜 세계에서합니까 하나의 쿼리 "웹 사이트를 잠급니다"? 나는 디자인 상 결함이있을 수도있다.

자바 스크립트는 브라우저가 새로 고침에 서버를 "명중"하기 위해 사용될 수 있지만, 그건 그냥 또 다른 AJAX 호출을 추가 그리고, 아마도, 다른 MySQL의 쿼리를 작성합니다 (PROCESSLIST와 함께 할 필요)보다 PHP

AJAX 호출, 프로세스 목록 조회 및 KILL QUERY 쿼리를 처리 할 수 ​​있습니다.

서버/MySQL 쿼리를보다 효율적으로 만들 것을 권장합니다. 따라서 플립 플립을 사용할 필요가 없습니다. 브라우저가 새로 고쳐 지거나 그렇지 않습니다. 브라우저 보안에 관해서는 PHP 또는 JavaScript를 사용하여 반복적 인 상쾌감에 일종의 "홍수 제한"을 적용 할 수 있습니다.

관련 문제