mirror of https://github.com/hykilpikonna/AquaDX
[O] Optimize query
parent
8e1c07d530
commit
d716ee5d26
|
@ -58,8 +58,7 @@ class Maimai2New(
|
||||||
return mapOf(
|
return mapOf(
|
||||||
"name" to user,
|
"name" to user,
|
||||||
"plays" to plays.size,
|
"plays" to plays.size,
|
||||||
"serverRank" to userDataRepository.findPlayerRatingByOrderByPlayerRating()
|
"serverRank" to userDataRepository.getRanking(user.playerRating),
|
||||||
.binarySearch(user.playerRating) + 1,
|
|
||||||
"accuracy" to plays.sumOf { it.achievement } / plays.size,
|
"accuracy" to plays.sumOf { it.achievement } / plays.size,
|
||||||
"rating" to user.playerRating,
|
"rating" to user.playerRating,
|
||||||
"ratingHighest" to user.highestRating,
|
"ratingHighest" to user.highestRating,
|
||||||
|
|
|
@ -3,6 +3,7 @@ package icu.samnyan.aqua.sega.maimai2.dao.userdata;
|
||||||
import icu.samnyan.aqua.sega.general.model.Card;
|
import icu.samnyan.aqua.sega.general.model.Card;
|
||||||
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserDetail;
|
import icu.samnyan.aqua.sega.maimai2.model.userdata.UserDetail;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
@ -22,5 +23,6 @@ public interface UserDataRepository extends JpaRepository<UserDetail, Long> {
|
||||||
@Transactional
|
@Transactional
|
||||||
void deleteByCard(Card card);
|
void deleteByCard(Card card);
|
||||||
|
|
||||||
List<Integer> findPlayerRatingByOrderByPlayerRating();
|
@Query("select count(*) from Maimai2UserData where playerRating > :rating")
|
||||||
|
Integer getRanking(int rating);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
CREATE INDEX idx_player_rating ON maimai2_user_detail(player_rating);
|
|
@ -0,0 +1 @@
|
||||||
|
CREATE INDEX idx_player_rating ON maimai2_user_detail(player_rating);
|
|
@ -0,0 +1 @@
|
||||||
|
CREATE INDEX idx_player_rating ON maimai2_user_detail(player_rating);
|
Loading…
Reference in New Issue