2017-10-28 1 views
1

기본 앱이 있습니다. 앱에 서버의 데이터가 필요하며 서버가 PHP를 실행합니다 (이는 상당히 기본적인 공유 호스팅입니다). 데이터가 요청되면 PHP는 앱에서 POST로 들어오는 토큰이 토큰 목록에 있는지 확인해야합니다. 토큰은 데이터베이스에 없습니다 (즉, 토큰을 요청하는 데이터베이스를 쿼리 할 수 ​​없습니다).PHP와 읽기 속도

  1. 나는 토큰의 배열과 PHP 파일이 : 나는 다음 중 하나를 수행 할 수

    (NoSQL에의 DBS는 옵션이 아닌) 응용 프로그램에 의해 호출 된 PHP 파일을이 파일을 포함하고;

  2. 토큰 이름으로 이름이 지정된 n txt 파일이 있습니다. 파일 이름이 응용 프로그램에서 존재하는지 테스트합니다.

  3. 토큰을 포함하는 txt 파일이 있습니다. 정규 표현식이 토큰을 검색합니다.

  4. JSON 파일이 있습니다. PHP에서 JSON을로드 한 다음 토큰이 있는지 확인합니다.

데이터를 읽는 가장 빠른 방법은 무엇입니까? 더 빠른 방법이 있습니까? 토큰은 5000을 초과 할 수 없습니다.

미리 감사드립니다!

+1

하드 코드 된 (1) 아마도이 경우 가장 빠른 솔루션입니다. –

+1

닫기 - 투표자 : 이것은 분명히 의견을 기반으로하지 않으며, 작은 벤치 마크는 의심의 여지없이이 작은 (5000-) 데이터 세트에서 가장 빠른 방법이 하드 코드 된 PHP 파일임을 증명합니다 – hanshenrik

답변

1

전용 .php 파일 접근법의 하드 코드 된 토큰은 확실히 가장 빠른 방법입니다 (예 : OPcache를 고려해보십시오. 첫 번째 실행 후 사전 컴파일 됨). 개인적으로, 나는 SQLite db와 PDO를 사용하고 있지만 성능에 문제가있을 때까지 사용하지 않을 것입니다. 결국 sqlite db는 파일 일뿐입니다. (그리고 더 쉽게 질의, 삭제, 추가 및 확장이 가능하며 .txt 파일보다 쉽고 수정 동시성 문제를 처리합니다 ... 작은 flock()을 사용하여 수동으로 쉽게 동일한 작업을 수행 할 수 있지만,)

+0

친절한 답장을 보내 주셔서 감사합니다 –

2

@hanshenrik이 제안했듯이, 토큰의 배열을 가진 PHP 파일은 더 빠른 접근 방식이 될 것이며, PHP 세계에서 Laravel은 악명 높은 프레임 워크이며, 그들은 사용합니다 이 번역 방법에 대한 laravel에서는 번역 키 쌍의 연관 배열을 반환하는 별도의 PHP 파일을 사용합니다.

현재 제가 작업하고있는 프로젝트에는 변환 데이터를 보유하고있는 엄청난 파일이 많이 있습니다. 아직 성능 문제는 없습니다. 희망이 도움이