Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

mySQL et fichier de log tournant

5 réponses
Avatar
Kevin Denis
Bonjour,

sous mySQL 5, est il possible d'utiliser un fichier de log tournant d'une
taille fixe?

i.e. que mon fichier .MYD fasse une taille donnée et lorsque la taille
est atteinte, les nouveaux enregistrements écrasent les plus anciens.

L'idée derrière est de pouvoir coller l'ensemble de ma base en RAM
afin d'avoir des perfs I/O excellentes. Ce sont juste des
enregistrements successifs qui s'ajoutent (pas de modifs de données
existantes). Et je n'ai besoin de faire des requêtes que sur les
derniers enregistrements, donc une quantité limitée n'est pas génante.

Merci
--
Kevin

5 réponses

Avatar
Ph. B.
Kevin Denis a écrit :
Bonjour,

sous mySQL 5, est il possible d'utiliser un fichier de log tournant d'une
taille fixe?

i.e. que mon fichier .MYD fasse une taille donnée et lorsque la taille
est atteinte, les nouveaux enregistrements écrasent les plus anciens.

L'idée derrière est de pouvoir coller l'ensemble de ma base en RAM
afin d'avoir des perfs I/O excellentes. Ce sont juste des
enregistrements successifs qui s'ajoutent (pas de modifs de données
existantes). Et je n'ai besoin de faire des requêtes que sur les
derniers enregistrements, donc une quantité limitée n'est pas génante.

Merci



Bonjour,

cf. la doc ici :
http://dev.mysql.com/doc/refman/5.0/fr/log-file-maintenance.html

--
Philippe.
Avatar
Kevin Denis
Le 27-10-2010, Ph. B. a écrit :
sous mySQL 5, est il possible d'utiliser un fichier de log tournant d'une
taille fixe?





Je me suis sans doute mal exprimé, il s'agit bien d'un fichier de data.

i.e. que mon fichier .MYD fasse une taille donnée et lorsque la taille
est atteinte, les nouveaux enregistrements écrasent les plus anciens.

L'idée derrière est de pouvoir coller l'ensemble de ma base en RAM
afin d'avoir des perfs I/O excellentes. Ce sont juste des
enregistrements successifs qui s'ajoutent (pas de modifs de données
existantes). Et je n'ai besoin de faire des requêtes que sur les
derniers enregistrements, donc une quantité limitée n'est pas génante.



cf. la doc ici :
http://dev.mysql.com/doc/refman/5.0/fr/log-file-maintenance.html



Pour le log interne de mySQL, mais pour les fichiers de données?
--
Kevin
Avatar
Jean-Max Reymond
Le 28/10/2010 12:01, Kevin Denis a écrit :
Le 27-10-2010, Ph. B. a écrit :
sous mySQL 5, est il possible d'utiliser un fichier de log tournant d'une
taille fixe?





Je me suis sans doute mal exprimé, il s'agit bien d'un fichier de data.



sans doute du partitionnement de table comme sait le faire Postgres:
http://docs.postgresqlfr.org/9.0/ddl-partitioning.html
je ne pense pas que ça soit possible avec Mysql

--
Jean-Max Reymond
Éruption de l'Etna: http://jmreymond.free.fr/Etna2002
Avatar
Sebastien Lardiere
On 10/27/2010 05:45 PM, Kevin Denis wrote:
Bonjour,

sous mySQL 5, est il possible d'utiliser un fichier de log tournant d'une
taille fixe?

i.e. que mon fichier .MYD fasse une taille donnée et lorsque la taille
est atteinte, les nouveaux enregistrements écrasent les plus anciens.

L'idée derrière est de pouvoir coller l'ensemble de ma base en RAM
afin d'avoir des perfs I/O excellentes. Ce sont juste des
enregistrements successifs qui s'ajoutent (pas de modifs de données
existantes). Et je n'ai besoin de faire des requêtes que sur les
derniers enregistrements, donc une quantité limitée n'est pas génante.

Merci




Comme une base RRD, mais dans MySQL, en quelque sorte ?

J'ai trouvé ça, ça semble faire l'affaire :
http://www.fromdual.com/round-robin-database-storage-engine

Mais pas testé.

--
Sébastien
Avatar
Ph. B.
Kevin Denis a écrit :
Le 27-10-2010, Ph. B. a écrit :
sous mySQL 5, est il possible d'utiliser un fichier de log tournant d'une
taille fixe?





Je me suis sans doute mal exprimé, il s'agit bien d'un fichier de data.

i.e. que mon fichier .MYD fasse une taille donnée et lorsque la taille
est atteinte, les nouveaux enregistrements écrasent les plus anciens.

L'idée derrière est de pouvoir coller l'ensemble de ma base en RAM
afin d'avoir des perfs I/O excellentes. Ce sont juste des
enregistrements successifs qui s'ajoutent (pas de modifs de données
existantes). Et je n'ai besoin de faire des requêtes que sur les
derniers enregistrements, donc une quantité limitée n'est pas génante.



cf. la doc ici :
http://dev.mysql.com/doc/refman/5.0/fr/log-file-maintenance.html



Pour le log interne de mySQL, mais pour les fichiers de données?



Dans ce cas, je dirais un déclencheur (trigger) sur l'insertion.

Dans celui-ci, il suffit de compter les lignes.
select count(*) from ma_table
Dès que le seuil que tu définiras sera atteint, les lignes les plus
anciennes seront supprimées. Un Id auto incrémenté dans ta table
permettra de les sélectionner en prenant les plus petites valeurs...

--
Philippe.