Bonjour à tous !
Nous avons un petit soucis que nous ne comprenons pas forcément.
Je vous explique :
Voici une table de notre base MySQL, contenant 70 000 000 de lignes dont la structure ressemble à ça :
Bref, nous faisons une requête du style
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 MA_TABLE { PRI_ID INTEGER NOT NULL, MY_DATE TIMESTAMP NOT NULL, d'autres champs }; ALTER TABLE MA_TABLE ADD ( PRIMARY KEY (PRI_ID) ) ; ALTER TABLE MA_TABLE MODIFY COLUMN PRI_ID INTEGER NOT NULL AUTO_INCREMENT; CREATE INDEX MY_INDEX ON MA_TABLE ( MY_DATE ASC );
Cette requête répond en 0,5 secondes au maximum. Ils y'a à peu près 800 000 lignes dans la réponse. (avec un explain, on voit qu'il utilise bien l'index.)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT tous_mes_champs FROM MA_TABLE WHERE MY_DATE BETWEEN DATE1 AND DATE2
Maintenant, on fait un DELETE sur cette table dans le même intervalle de temps : ça fait 2600 secondes que le delete est parti, il n'est toujours pas terminé...
Pensez vous que cela soit normal??
Je précise :
- moteur de la table innodb
- cette table référence 4 tables au moyen de foreign keys, mais n'est référencée par personne.
D'avance merci pour vos tuyaux![]()
Partager