나는이 게임을 "Fortress"라는 제목으로 (http://www.joemajewski.com/fortress)에 있습니다. 어쨌든, 플레이어가 군대를 만들고 통계를 업그레이드하여 리더 보드에서 높은 순위를 얻는 브라우저 기반 롤 플레잉 게임 중 하나입니다.100 개 이상의 MySQL 업데이트 쿼리 실행. 최적화 팁주세요 :)
30 분마다 cron 작업이 실행되어 일부 업데이트가 수행됩니다. 게임의 각 플레이어를 순환하며 (더 많은 사람들이 참여함에 따라 자연스럽게 시간이 지남에 따라 계속 증가 할 것입니다.) 특정 통계를 업데이트합니다. 모두에게 1 회전을 더주고, 수입, 음식, 목재, 구리, 철 등을 기준으로 금을 제공합니다. 또한 순위를 업데이트합니다.
그게 전부 말도 안되는 점입니다.하지만 요점은 각 플레이어가 자체 업데이트 쿼리를 갖게된다는 것입니다. 는 mysql_query() 기능이 제대로 작동과 함께 ~ 3.5 MS
실행 시간 :는 mysql_query() 함수
실행 시간 업데이트에 대한 주석 : 난 그냥 3 명으로 스크립트를 초과 ~ 14 MS
게임에 100 명이 넘는 등록 회원이 있으면 내 cron 작업이 매우 느리게 진행되는 것은 분명히 업데이트 쿼리입니다. 게임을 시작한 후 2 주 이내에 100 명의 활동중인 플레이어가 있기를 희망하지만 많은 플레이어가 여러 계정을 만들므로 2 주 후에 적어도 200 명의 회원을 기대합니다. 200 개의 업데이트 쿼리와 멤버 정렬 및 순위 계산에 추가 시간을 추가하면 cron 작업을 실행하는 데 2 초 이상 걸릴 수 있습니다.
내 질문에. 이런 식으로 할 수있는 더 빠른 방법이 있습니까? "START TRANSACTION"및 "COMMIT"쿼리를 루프 전후에 추가하려고 시도했지만 단 3 명의 멤버만으로 속도를 측정하기는 어렵습니다. 트랜잭션이 스크립트를 더 좋게 만들 것인가 악화시킬 것인가? 다른 방법이 있습니까? 어떤 도움을 주시면 감사하겠습니다.
시간 내 주셔서 진심으로 감사드립니다.
쿼리를 볼 필요가 ... –
인덱스, 인덱스, 인덱스 –
인덱스가 이미 있는데 내 질문이 아니기 때문에 쿼리를 게시하지 않았습니다. 업데이트 쿼리를 연속적으로 실행하여로드 시간을 줄이는 MySQL 트릭이 있는지 알고 싶었습니다. –