올바르게 이해하면 데이터베이스가 아닌 파일에서 데이터를 검색하는 것이 훨씬 저렴합니다. 따라서 SELECT
을 사용할 때 MySQL은 UPDATE
, INSERT
, DELETE
등을 사용할 때마다 생성되거나 업데이트되는 파일에서 데이터를 검색하지 않습니다. 보안 문제가있는 이유는 무엇입니까?PHP + MySQL이 기본적으로 파일 캐시를 사용하지 않는 이유는 무엇입니까?
답변
무엇이 있습니까? 은 데이터베이스입니까? 어딘가에서 데이터를 저장하고 다시 검색 할 수있게 해주는 프로그램입니다. 데이터베이스는 이러한 데이터를 파일 어딘가에 저장합니다. MySQL은 일반적으로 데몬으로 실행됩니다. 해당 데몬에 접속하여 데이터를 요청하십시오. 이 데이터의 출처는 완전히 MySQL에 달려 있습니다. 여러 번이 데이터를 RAM에서 검색 할 수 있습니다. 은 파일을 열고 거기에서 읽는 것보다 훨씬 덜입니다. 데이터가 RAM에 이미 존재하지 않으면 다음에 파일에서 데이터를 검색합니다.
그래서 질문이 잘못되었습니다. MySQL 어떤 시점에서 파일에서 데이터를 가져옵니다. 그것은 이 아니며, 반드시 "훨씬 저렴"이 아닙니다. RAM에 데이터를 보관하는 데이터베이스에서 가져 오는 것이 더 낫지 않을 수도 있습니다.
물론입니다. 하지만 Memcache 또는 APC을 사용해야합니다. 이렇게하면 만료 시간을 가질 수 있습니다. 뿐만 아니라 관리자 패널에서 무언가를 업데이트 할 때 다음 번로드시 해당 내용을 새로 고치기 위해 지정한 특정 키를 삭제할 수 있습니다 (DB를 누르고 다음 업데이트 또는 만료까지 저장)
아마도 MySQL 쿼리 캐시에 대해 더 자세히 알고 싶으 시다면 http://dev.mysql.com/doc/refman/5.1/en/query-cache.html
MySQL은 일반적으로 기본값 당 쿼리 (쿼리 캐시)에 대해 일부 캐싱 방법을 사용하고 있습니다. ...
소스를
가 MySQL은 기본적으로 이미 파일에서 데이터를 검색하는 외에 (전체 데이터베이스) 하나의 파일이 될 수있는 테이블 엔진에 따라 다름), 그래서, 물론 그 캐시는 메모리에 저장됩니다 http://dev.mysql.com/doc/refman/5.0/en/query-cache-configuration.html
당신의 문서 저장소, 오히려 다음과 같은 관계형 데이터베이스로 MySQL을 사용하는 경우,있는 오른쪽 '일 SELECT * FROM 경우 ID = 123' 빠른 경우 'file_get_contents ("123로 기록 될 수있다. 데이터 ") '
데이터베이스로 MySql을 사용하는 경우 그런 다음 '% doe %' '와 같은 이름이'모든 파일을 열고, 이름 필드를 확인하고, 일치하면 결과에 추가, 다음 파일 '을 선택하십시오. 데이터의 양이 적다면 훨씬 느려. 또한 PHP에서 관계형 데이터베이스를 작성할 때 어떤 종류의 join-like 연산이든 두통이 될 수 있습니다.
데이터베이스가 아닌 파일에서 데이터를 검색하는 것은 저렴하지 않습니다. 데이터베이스의 데이터는 파일에도 저장되지만 최적화 된 방법으로 검색이 훨씬 빠릅니다. 여기에 나는 파일과 데이터 소스가 같은 머신에 있다고 생각하고있다. 두 경우 모두 검색은 입출력 경계입니다.
제대로 캐시하려면 APC 또는 Memcached를 사용해야합니다. APC는 로컬 캐시 (응용 프로그램 구성, 언어 상수 등 저장)로 사용할 수 있지만 memcached는 별도의 캐시 (사용자 정보, 세션 등)로 사용할 수 있습니다.
또한 MySQL 쿼리 캐시를 사용할 수 있습니다. 과도한 쓰기가 많은 애플리케이션 인 경우 btw는 좋지 않습니다. 또한 쿼리 캐시 뮤텍스를 기다리기 때문에 쿼리 캐시가 응용 프로그램에 너무 많은 쓰기가있는 경우 쿼리가 지연 될 수 있습니다.
- 1. mysql이 내 색인을 사용하지 않는 이유는 무엇입니까?
- 2. 캐시를 사용하지 않는 grails
- 3. 기본적으로 DeepClone을 사용하지 않는 JavaScript 객체는 무엇입니까?
- 4. cfscript를 사용하여 ColdFusion 9.01에서이 쿼리 캐시를 사용하지 않는 이유는 무엇입니까?
- 5. AS3는 기본적으로 약한 참조를 사용하지 않는 이유는 무엇입니까? (이벤트 리스너에서)
- 6. 사용하지 않는 PHP 파일 제거하기
- 7. MySQL이 예상대로 주문하지 않는 이유는 무엇입니까?
- 8. 내 RewriteRules을 함께 사용하지 않는 이유는 무엇입니까?
- 9. Emacs를 사용하지 않는 이유는 무엇입니까?
- 10. SubmitChanges를 사용하지 않는 이유는 무엇입니까?
- 11. typekit을 사용하지 않는 이유는 무엇입니까?
- 12. NSLock을 사용하지 않는 이유는 무엇입니까?
- 13. JMS가 JDK에 기본적으로 포함되지 않는 이유는 무엇입니까?
- 14. PreAuthenticate가 기본적으로 사용되지 않는 이유는 무엇입니까?
- 15. 기본적으로 ViewState가 서버에 저장되지 않는 이유는 무엇입니까?
- 16. 외래 키를 사용하지 않는 이유는 무엇입니까? [php + MySQL]
- 17. 캐시를 사용하지 않는 mysql SELECT 쿼리
- 18. 왜 안드로이드 Webview는 기본적으로 캐시를 확인하지 않습니까?
- 19. 일부 서버 기술은 기본적으로 파일없는 페이지 확장을 사용하지 않는 이유는 무엇입니까?
- 20. 여기에 POST 방법을 사용하지 않는 이유는 무엇입니까?
- 21. AntiForgeryToken이 기본적으로 모든 양식에 포함되지 않는 이유는 무엇입니까?
- 22. 사용하지 않는 파일 삭제
- 23. div가 자동 너비를 사용하지 않는 이유는 무엇입니까?
- 24. Ajax가 자체 호출을 사용하지 않는 이유는 무엇입니까?
- 25. FlowDocument가 전체 너비를 사용하지 않는 이유는 무엇입니까?
- 26. Android : startManagingCursor를 사용하지 않는 이유는 무엇입니까?
- 27. GPU를 CPU로 사용하지 않는 이유는 무엇입니까?
- 28. SQLAlchemy보다 SQLObject를 사용하지 않는 이유는 무엇입니까?
- 29. GWT가 gwt-dispatch를 사용하지 않는 이유는 무엇입니까?
- 30. C++에서 malloc을 사용하지 않는 이유는 무엇입니까?
RAM 디스크를 사용하는 것이 더 좋습니다 :) – jondinham