2013-03-02 4 views
0

PHP/MySQL 환경에서 가능한 최소한의 리소스를 사용하는 데이터베이스에서 검색 루틴을 개발하는 가장 좋은 방법을 찾고 있습니다.외부 데이터가 MySQL 데이터베이스에 이미 있는지 확인하는 가장 좋은 방법

Google은 수시로 미묘하게 변경되거나 새로운 상태 값을 갖는 경향이있는 외부 정보를 처리합니다. 이것은 우리가 우리 자신의 숫자 키를 추가하고 종래의 SQL 검색으로 검색하는 것으로 제한된다는 것을 의미합니다. 우리는 고유 한 문자열을 만들기 위해 MD5를 사용하므로 대신에 검색하는 생각

을 위해 ...

WHERE DATE = '12/12/2012 09:00' 
AND TYPE = 'new alert' 
AND loc = 'rear door' 
AND subtype = 'pir hit' 
AND lat = 39.3343 
AND lon = 145.234 
AND current STATUS = 'active' 
AND Support = 'en-route'; 

우리는 MD5 예를 들어, 생성 ef6d3c25ac9362413fed2b4d3f65962a와 같이 우리가 관심이있는 분야에서. 2012 년 12 월 12 일 09 : 00 ~ 새로운 알림 ~ 뒷문 ~ pir hit ~ -39.3343 ~ 145.234 ~ active ~ en-route 그러면 우리는 별도의 필드가 아닌 데이터베이스에서이 MD5 만 검색 할 수 있습니다.

또한 가장 최근의 MD5 목록에있는 파일을 사용하여 DB에 질문하는 것이 흥미로울 것입니다. 우리가 가장 많이하는 피드에 1100+ 작업을 가질 수 있기 때문입니다. 더 자주는 약 60 명 정도의 일자리가 있습니다.

귀하의 생각과 이유에 대해 Google은 귀하가 생각하는 가장 좋은 해결책에 관심이 있습니다.

+0

와우! MD5로 데이터베이스의 일반 셀을 암호화하지 마십시오. 나중에 데이터를 읽을 수 없습니다! –

+1

@aguyfromhere : OP는 아마도 해시가있는 추가 검색 색인 필드를 제안하고 있습니다. 그들은 해시를 뒤집을 필요가 없습니다. 물론 합리적인 것은 아닙니다. –

+0

@MichaelPetrotta : 'PRIMARY KEY AUTO INCREMENT'와 같은 것이 큰 도움이 될 때 거대한 해시를 사용하는 것은 어리석은 것 같습니다. –

답변

1

해결 방법은 Apache Solr입니다. 면밀한 검색은 모든 요구 사항을 충족시켜줍니다. 데이터 복제/색인 작성에는 많은 노력이 필요하지 않습니다. 우리 회사의 프로젝트에서이 엔진을 구현하여 이름/날짜/특성/공급 업체/배급 업체/등을 검색하고 매력적으로 작동합니다. 비록 접착제로 묶인 문자열 위에 md5가 약간의 시간을위한 해결책 이었지만. 어쨌든, 시간은 현재의 솔루션이 상황을 얼마나 잘 처리하고 얼마나 잘 수행하는지에 달려 있습니다.

+0

Michael Petrotta와 Kapo에게 감사드립니다. 우리는 Apache Solr와 다른 솔루션을 볼 시간을 가질 수 있도록 새로운 프로세스를 구현하는 데 시간이 좀 걸립니다. – Ewen

관련 문제