je suis entrain de faire quelques tests de charge sur une de mes
bases.
J'ai remarqu=E9 que un select count(*) from base sur une base en innodb
est proportionnel =E0 la taille de la table.
C'est =E0 dire qu'en MyIsam sur une table de 10 Millions
d'enregistrements, c'est quasi imm=E9diat(0.00sec), parcontre sur une
table innodb c'est de l'ordre de plusiueurs secondes.
Est ce que quelqu'un peut confirmer ma remarque, et si oui avez
vous une id=E9e de cette diff=E9rence?
Merci
--=20
suivre ce lien pour r=E9pondre:
http://cerbermail.com/?2KrV3YZXnn
Daniel
;-)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
see
Daniel wrote:
C'est à dire qu'en MyIsam sur une table de 10 Millions d'enregistrements, c'est quasi immédiat(0.00sec), parcontre sur une table innodb c'est de l'ordre de plusiueurs secondes.
"COUNT(*) est optimisée pour retourner très rapidement un résultat si SELECT travaille sur une table, qu'aucune autre colonne n'est lue, et qu'il n'y a pas de clause WHERE. Par exemple :
mysql> SELECT COUNT(*) FROM student;
Cette optimisation s'applique uniquement pour les tables MyISAM et ISAM, car un compte exact du nombre de lignes est stocké pour ces types de tables, et il peut être lu très rapidement. Pour les moteurs de tables transactionnels, (InnodB, BDB), le stockage de cette valeur est plus problématique, car plusieurs transactions peuvent survenir en même temps, et affecter toutes ce compte."
-- Bruno http://errance.lirano.net
Daniel wrote:
C'est à dire qu'en MyIsam sur une table de 10 Millions
d'enregistrements, c'est quasi immédiat(0.00sec), parcontre sur une
table innodb c'est de l'ordre de plusiueurs secondes.
"COUNT(*) est optimisée pour retourner très rapidement un résultat si
SELECT travaille sur une table, qu'aucune autre colonne n'est lue, et
qu'il n'y a pas de clause WHERE. Par exemple :
mysql> SELECT COUNT(*) FROM student;
Cette optimisation s'applique uniquement pour les tables MyISAM et
ISAM, car un compte exact du nombre de lignes est stocké pour ces types
de tables, et il peut être lu très rapidement. Pour les moteurs de
tables transactionnels, (InnodB, BDB), le stockage de cette valeur est
plus problématique, car plusieurs transactions peuvent survenir en même
temps, et affecter toutes ce compte."
C'est à dire qu'en MyIsam sur une table de 10 Millions d'enregistrements, c'est quasi immédiat(0.00sec), parcontre sur une table innodb c'est de l'ordre de plusiueurs secondes.
"COUNT(*) est optimisée pour retourner très rapidement un résultat si SELECT travaille sur une table, qu'aucune autre colonne n'est lue, et qu'il n'y a pas de clause WHERE. Par exemple :
mysql> SELECT COUNT(*) FROM student;
Cette optimisation s'applique uniquement pour les tables MyISAM et ISAM, car un compte exact du nombre de lignes est stocké pour ces types de tables, et il peut être lu très rapidement. Pour les moteurs de tables transactionnels, (InnodB, BDB), le stockage de cette valeur est plus problématique, car plusieurs transactions peuvent survenir en même temps, et affecter toutes ce compte."
-- Bruno http://errance.lirano.net
Daniel
Bonjour, (Bruno Jargot) writes:
Daniel wrote:
> C'est à dire qu'en MyIsam sur une table de 10 Millions > d'enregistrements, c'est quasi immédiat(0.00sec), parcontre sur une > table innodb c'est de l'ordre de plusiueurs secondes.
"COUNT(*) est optimisée pour retourner très rapidement un résultat si SELECT travaille sur une table, qu'aucune autre colonne n'est lue, et qu'il n'y a pas de clause WHERE. Par exemple :
mysql> SELECT COUNT(*) FROM student;
Cette optimisation s'applique uniquement pour les tables MyISAM et ISAM, car un compte exact du nombre de lignes est stocké pour ces types de tables, et il peut être lu très rapidement. Pour les moteurs de tables transactionnels, (InnodB, BDB), le stockage de cette valeur est plus problématique, car plusieurs transactions peuvent survenir en m ême temps, et affecter toutes ce compte."
Merci, pour l'info, j'avais cherché mais pas trouvé cette info.
-- suivre ce lien pour répondre: http://cerbermail.com/?2KrV3YZXnn Daniel ;-)
> C'est à dire qu'en MyIsam sur une table de 10 Millions
> d'enregistrements, c'est quasi immédiat(0.00sec), parcontre sur une
> table innodb c'est de l'ordre de plusiueurs secondes.
"COUNT(*) est optimisée pour retourner très rapidement un résultat si
SELECT travaille sur une table, qu'aucune autre colonne n'est lue, et
qu'il n'y a pas de clause WHERE. Par exemple :
mysql> SELECT COUNT(*) FROM student;
Cette optimisation s'applique uniquement pour les tables MyISAM et
ISAM, car un compte exact du nombre de lignes est stocké pour ces types
de tables, et il peut être lu très rapidement. Pour les moteurs de
tables transactionnels, (InnodB, BDB), le stockage de cette valeur est
plus problématique, car plusieurs transactions peuvent survenir en m ême
temps, et affecter toutes ce compte."
Merci, pour l'info, j'avais cherché mais pas trouvé cette info.
--
suivre ce lien pour répondre:
http://cerbermail.com/?2KrV3YZXnn
Daniel
;-)
> C'est à dire qu'en MyIsam sur une table de 10 Millions > d'enregistrements, c'est quasi immédiat(0.00sec), parcontre sur une > table innodb c'est de l'ordre de plusiueurs secondes.
"COUNT(*) est optimisée pour retourner très rapidement un résultat si SELECT travaille sur une table, qu'aucune autre colonne n'est lue, et qu'il n'y a pas de clause WHERE. Par exemple :
mysql> SELECT COUNT(*) FROM student;
Cette optimisation s'applique uniquement pour les tables MyISAM et ISAM, car un compte exact du nombre de lignes est stocké pour ces types de tables, et il peut être lu très rapidement. Pour les moteurs de tables transactionnels, (InnodB, BDB), le stockage de cette valeur est plus problématique, car plusieurs transactions peuvent survenir en m ême temps, et affecter toutes ce compte."
Merci, pour l'info, j'avais cherché mais pas trouvé cette info.
-- suivre ce lien pour répondre: http://cerbermail.com/?2KrV3YZXnn Daniel ;-)
pgulutzan
Les gens qui ont construit InnoDB ont promis de corriger cela, dans le long terme: http://www.innodb.com/todo.php
Peter Gulutzan MySQL AB
Les gens qui ont construit InnoDB ont promis de corriger cela, dans le
long terme:
http://www.innodb.com/todo.php