나는 퀴즈를 만들고 있는데, 많은 선수들을 기대하고있다. 퀴즈는 고정 된 수의 질문을 가지고 있습니다. 퀴즈 시스템은 MySql 데이터베이스에서 개별 질문을 하나씩 가져 와서 사용자에게 표시 할 수 있습니다. 또는 다른 방법으로 로그인 할 때 모든 질문을 가져 와서 하나씩 표시 할 수 있습니다. 두 번째 방법은 많은 수의 SQL 쿼리로 인해 서버로드를 줄이는 데 큰 도움이됩니까? 여기에서 나는 동시에 500-600 명의 사용자가 게임을하는 것에 대해 말하고 있습니다.어느 것이 더 낫습니다 : 많은 SQL 쿼리 또는 하나의 SQL 데이터에 많은 데이터가 있습니까?
답변
확실히 알 수있는 유일한 방법은 두 가지 방법 모두를 벤치마킹하는 것입니다.
저는 가치가있는 점에 대해 많은 수의 작은 SQL 쿼리를 적은 수의 큰 쿼리로 대체하여 성능이 중요한 코드 조각의 처리량을 최근 10 배로 향상 시켰습니다.
인덱스가 잘 설정된 데이터베이스는 단일 쿼리로 전혀 문제가 없어야하는데, 이것이 내가 원하는 것입니다. 보너스 : 작은 쿼리는 서버의 쿼리 캐시에 남아 있으므로 다시 요청할 경우 더 빨리 전달됩니다.
숫자에 따라 다릅니다. 모든 질문을 표시하고 있습니까, 아니면 1,000 개 중 5 개를 무작위로 선택합니까?
질문 수가 적 으면 단일 쿼리로 페치하는 것이 좋습니다.
질문 수가 많으면 단일 쿼리로 페치하면 메모리가 많이 사용되므로 하나씩 페치하는 것이 좋습니다.
단지 15 개의 쿼리와 아니요, 무작위로 가져 오지 않을 것입니다. – aakashbhowmick
그렇다면 단 하나의 쿼리로 페치하는 것이 더 낫습니다. 일반적으로 데이터베이스는 각 쿼리를 분석하고 실행 계획을 준비해야하므로 데이터베이스가 15 번 대신 1 회 수행하는 것이 좋습니다. – Arsen7
질문의 수가 적은 경우 어느 쪽이든 약간의 차이가 있습니다. 또한 질문 수가 많으면 앞뒤로 지나치게 많은 네트워크 대기 시간을 피할 수 있으므로 단일 쿼리로 가져 오는 것이 더 효율적입니다.
제외 15 이외 을 선택하십시오. 각 사용자의 대답은 개별 검색어입니다. DB 서버의 최대 이점은 쿼리 2 회분 (모든 사용자에 대해 1 회 선택 및 1 회 삽입)입니다.
이론상 이론상 초당 500-600 개의 인서트가 제공 될 수 있습니다. 실제로 삽입이 적습니다.
어쨌든 삽입 잠금에 대한 오버 헤드가 있으므로 많은 수의 쿼리를 피해야합니다.
- 1. 어느 것이 더 낫습니다? OpenCyc 또는 ConceptNet?
- 2. 하나의 SQL 쿼리 또는 많은 루프?
- 3. 더 많은 SQL 두통
- 4. 어느 것이 더 낫습니다? 탄소 또는 코코아? (Mac)
- 5. 많은 많은 LINQ TO SQL 쿼리
- 6. 더 많은 테이블 또는 더 많은 데이터베이스?
- 7. 많은 작은 SQL 호출 또는 소수의 대형 SQL 호출은 없습니까?
- 8. SQL 효율성 - 어느 것이 더 빠릅니까?
- 9. 많은 mongoDB 하나의 쿼리?
- 10. 어느 쪽이 더 낫습니다, ETL 또는 ELT입니까?
- 11. 특정 데이터에 대한 Sql 쿼리
- 12. UIView 숨겨진 속성 ... 더 많은 것이 있습니까?
- 13. 더 빠릅니다 : 많은 행 또는 많은 열?
- 14. 어느 것이 더 빠르고 더 나은 SQL 연습입니까?
- 15. 한 열에 많은 데이터가 많고 작은 행에 많은 데이터가 저장됩니다.
- 16. 내 프로젝트, 더 많은 열 또는 더 많은 행의 성능에 가장 적합한 것이 하나 있습니까?
- 17. 투표 시스템 : SQL 트리거 또는 더 많은 코드를 사용해야합니까?
- 18. 배열에 너무 많은 데이터가 있습니까?
- 19. SQL Server가 더 많은 CPU를 사용하도록하려면 어떻게해야합니까?
- 20. SQL - 더 많은 테이블 정보에 연결
- 21. 많은 관계를로드하는 하나의 linq 쿼리
- 22. ON 절에 더 많은 논리를 넣는 것이 더 낫지 않습니까? 아니면 최소한 필요한 것이 있습니까?
- 23. 더 많은 UIView 또는 더 많은 CALayer가있는 복잡한 UIView를 작성해야합니까?
- 24. 더 많은 SQL Server 및 T-SQL 경험을 얻으십시오.
- 25. SQL Server 2008에 대해 더 많은 RAM을 사용하는 것이 더 좋은 성능을 보여주는 시나리오
- 26. SQL 커서 쿼리 또는 두 개의 개별 쿼리 : 어느 쪽이 더 효율적입니까?
- 27. 하나의 mySQL 항목 중에서 가능한 많은 패턴 중 하나를 어떻게 찾을 수 있습니까? 더 많은 내부
- 28. 어느 것이 더 낫습니다 : JDBC Connection 풀링, 또는 JDBC Connection을위한 SIngleton 클래스 사용?
- 29. iPhone과 Android를 비교하면 어느 것이 더 낫습니까?
- 30. wx.StaticBitmap 또는 wx.DC : 끊임없이 변화하는 이미지에 사용하는 것이 더 낫습니다.
저는 PHP를 사용하고 있으므로 SESSION 변수에 질문을 저장하려고합니다. 당신이 말하는 쿼리 캐시 란 무엇입니까? 미안하지만, 나는 독학 프로그래머이고 기술 전문 용어를 모르는 사람입니다. – aakashbhowmick
죄송합니다. 내가 언급 한 "쿼리 캐시"는 MySQL 서버의 내부 메커니즘입니다. 많이 질문하는 질문 (예 : 검색어)은 캐시됩니다. –