MySQL 데이터베이스에 가장 최근의 30 개의 메시지 만 저장하려는 턴 기반 게임 (PHP 및 MySQL 사용)을위한 채팅을 구축 중입니다. (chatMessages INTOMySQL 최적화 - 특정 수에 대한 삭제
INSERT : 새 행으로 새로운 채팅 메시지를 삽입
: 카운트가 30을 초과하면
현재, 내가 3 개 쿼리를하고 있어요 것은 가장 오래된 메시지를 삭제하기 $ params [ "message"]. " ', NOW (사용자 아이디, matchId, 메시지, 타임 스탬프) VALUES (". $ params [ "userId"]. ", $ params ["matchId "].))
다시 데이터베이스의 메시지가 너무 많아서 가장 오래된 메시지를 가져옵니다.
SELECT COUNT (ID) AS 카운트, ID AS oldestId FROM chatMessages WHERE matchId = ". $ params ["matchId "]. ID가 = ". $ oldestId
는이 작업을 수행 할 수있는 방법이 있나요 WHERE 아이디 ASC의 LIMIT BY ORDER 1
는
이 chatMessages에서 삭제 가장 오래된 메시지를 삭제 2, 심지어는 1 개의 단일 쿼리? 서버에서 많은 트래픽이 발생하므로 성능이 중요합니다.
무엇이 일치합니까? – Sebas