Bonjour à tous, je dispose d'un serveur, qui charge dès le lancement énormément de donnée. Le problème actuel se pose sur une table, qui coute 3 Go à la RAM pour la charger et stocker. Cela pose problème parce que je ne peux même plus charger cette base de donnée sur mon PC.
Actuellement le nombre d'entrées de la table est de : 3 236 000 et pèse 252 MB.
Voici la table en question :
Voici maintenant les variables de la class "Item" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 Target Server Type : MySQL Target Server Version : 100138 File Encoding : 65001 Date: 19/05/2019 12:32:11 */ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for items -- ---------------------------- DROP TABLE IF EXISTS `items`; CREATE TABLE `items` ( `id` int(11) NOT NULL, `template` int(11) NOT NULL, `qua` int(11) NOT NULL, `pos` int(11) NOT NULL, `stats` text NOT NULL, `runes` text, PRIMARY KEY (`guid`) USING BTREE, UNIQUE KEY `guid` (`guid`) USING BTREE ) ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC; SET FOREIGN_KEY_CHECKS = 1;
A savoir : La liste "cache" me permet de stocker toutes les entrées et de pouvoir les récupérer au fur et à mesure après.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 private int id = 0, qua = 0, pos = 0; private ItemTemplate template = null; private String stats = ""; private Map<Integer,List<String>> otherStats = new LinkedHashMap<Integer,List<String>>(); private static Map<Integer, Item> cache = new HashMap<Integer, Item>(); private static int objectIdIndex = 0; private List<EffectManager> effects = new ArrayList<EffectManager>(); private List<EffectManager> cCeffect = new ArrayList<EffectManager>();
La liste otherStats contient d'autres statistiques sur l'item, j'ai utilisé un LinkedHashMap parce que je veux que l'ordre d'affichage soit dans l'ordre d'ajout.
En espérant que vous allez pouvoir m'aiguiller sur des potentiels façon d'optimiser tout ça afin de rendre le chargement beaucoup plus viable.
Bonne journée et merci
Partager