순수한 성능 관점에서 간단한 데이터 (미리 정의 된 메시지)를 저장하는 것이 더 낫다고 말합니다. 파일 핸들을 열고 json_decode "Subject"와 "body"를 열고 파일을 닫거나 데이터베이스를 쿼리하는 작업이 더 많을 것이라고 생각하십니까 (SELECT subject
, body
FROM predefine
WHERE id = 'message1'id는 기본 키라고 가정) . 5 ~ 10 개의 미리 정의 된 메시지 만 갖지만 수백 명의 사용자가이 응용 프로그램을 동시에 사용하고 있다고 가정하고 싶습니다.매우 간단한 데이터의 경우 플랫 파일과 MySQL의 비교
답변
메시지가 미리 정의되어 있고 읽기 전용 인 경우 PHP 소스 파일에 (상수로) 하드 코딩하면됩니다.
변경된 경우 데이터베이스에서 동시성 문제를 처리하도록하십시오. 기본 키로 행을 읽는 것은 매우 빠릅니다. 특히 테이블에 행이 10 개 밖에없는 경우 특히 그렇습니다. 앱이 성능 문제를 일으키는 곳이 아닐 것입니다.
5-10 메시지의 경우 플랫 파일이 훨씬 효율적입니다. MySQL은 별도의 프로세스이므로 간단한 프로세스 간 통신은 작은 파일을 구문 분석 한 다음 더 많은 CPU로드를 발생시킵니다. 100 개의 메시지가 나오면 간단히 색인 된 파일처럼 더 복잡한 시스템에 대해서 생각해보기 시작할 것입니다. 심지어 SQL은 과도한 공격이다. 10000 또는 100000 메시지가있을 때만 데이터베이스의 이점을 볼 수 있습니다.
Daniel이 말했듯이 이미 DB를 사용하고 있다면 거기에 던져 넣으십시오. 응용 프로그램이 데몬 프로세스 인 경우 다시 시작할 때 DB에서로드하고 메모리에 캐시하면 최상의 성능이 보장됩니다.
오른쪽. 하지만 웹 서버 (아파치 어쩌면)에서 실행 중이며 캐시 할 수 있습니다. 예를 들어 Django라면 캐시 백엔드 중 하나를 사용할 것입니다. – Sid
작은 파일의 경우 플랫 파일 읽기가 매우 빠릅니다. 특정 데이터를 찾으려고 할 때 데이터베이스의 성능상의 이점이 있습니다. 특정 파일 (예 : 파일 이름 : msg_1.txt
, msg_2.txt
등)을 잡는 중일 때는 flatfile 시스템을 사용하는 것이 좋습니다.
JB Nizet이 지적한 것처럼 몇 가지 메시지 만 처리한다면 ... 상수를 사용하거나 PHP 파일에 배열을 만들면 include_once()
필요할 때 편집 할 수 있습니다 정의 :
$msg = array(
'msg1'=>array('sub'=>"subject",'body'=>"body Text"),
'msg2'=>array('sub'=>"subject 2",'body'=>"body Text 2"),
//...etc.
);
미리 정의 된 것은 관리자가 편집 할 때 편집 할 수 있지만 반드시 그렇지는 않습니다. 그들은 효과적으로 읽기 전용입니다. MySQL이 하루 종일 서버를 중단시키고 필요하지 않을 때 CPU 사용량을 줄이는 것에 대해 걱정하고 있습니다. – user974896
인덱스가 있고 간단한 테이블을 사용하는 간단한 mysql 쿼리의 경우 쿼리 시간을 초당 10,000 분의 1 초 미만으로 처리 할 것이므로 어떤 벽을 치게 될지 의심 스럽다. (서버가 연결을 해제해야한다. 수백 명의 동시 사용자가 문제가되지 않아야 함). 실시간 연결 끊김 현상은 연결을 만들고 끊을 것이므로 영구 연결을 조사해야합니다. 그러나, 당신의 상황 (당신은 항상 하나의 키, 즉 id 나 파일명을 통해 접근한다는 것을 알고있다.) 나는 일반적으로 플랫 파일이나 미리 정의 된 배열을 사용한다. –
- 1. 해셋을 파일과 비교
- 2. SQL에서 데이터의 병렬 비교
- 3. WPF : 매우 간단한 폼의 경우 XamlParserException이 발생합니까?
- 4. 매우 큰 Jar 파일과 FAT32
- 5. 플랫 파일에서 데이터의 유효성을 검사하는 방법은 무엇입니까?
- 6. MySQL의 비교 및 '%'
- 7. 매우 간단한 Ajax 질문
- 8. MySQL의 날짜 비교 문제
- 9. MySQL의 시간 비교
- 10. 날짜 비교 PHP MySQL의
- 11. mysql의 열 비교
- 12. PHP MySQL의 비교 데이터
- 13. MySQL의 테이블 데이터 비교
- 14. 매우 간단한 필터 시스템입니까?
- 15. jQuery 매우 간단한 플러그인
- 16. 간단한 단어 비교 알고리즘
- 17. 초기 데이터의 경우 html_data 및 jstree의 AJAX 데이터의 경우 json_data
- 18. OR에서 MySQL의 쿼리가 매우 느리다.
- 19. 는 아래 데이터의 경우
- 20. MySQL의 기능, 나는이 간단한 MySQL의 문이
- 21. 매우 간단한 사용자 확인
- 22. 매우 간단한 PHP 문제
- 23. IE는 매우 간단한 메뉴
- 24. 매우 간단한 mysql join
- 25. 매우 간단한 JSON 디코딩
- 26. 매우 간단한 자바 CMS
- 27. 이미지 매우 비슷한 이미지의 경우
- 28. Java에서의 간단한 Wav 비교
- 29. 간단한 체크리스트 박스 비교
- 30. 내가이 매우 간단한 프로그램을 psexec에
몇 백명의 사용자는 중요하지 않습니다. 만약 내가 다른 것들에 대해서도 DB에 메시지를 넣을 수있는 db를 사용했다 – Daniel