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

[mysql] passer de myisam a innodb

12 réponses
Avatar
GanGan
bonjour les amis !!

j'ai un truc farfelu a faire transformer : une base mysql avec des tables
myisam qui faudrai que je transforme en innodb
comment feriez vous ça ? la base est en prod :s j'ai bien une idée mais y
a peut etre mieux.

--
- GanGan -

www.system-linux.eu

(">
/
V_V

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org

10 réponses

1 2
Avatar
bougie bougie
--001636c59716fc0afe046824cac4
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

---------- Message transféré ----------
De : bougie bougie
Date : 22 avril 2009 15:31
Objet : Re: [mysql] passer de myisam a innodb
À : GanGan


Deja, il faudrait que tu exportes ta base qui est en prod pour pouvoir fair e
des testes sans tout casser.

Le 22 avril 2009 14:53, GanGan a écrit :


bonjour les amis !!

j'ai un truc farfelu a faire transformer : une base mysql avec des tables
myisam qui faudrai que je transforme en innodb
comment feriez vous ça ? la base est en prod :s j'ai bien une idée ma is y
a peut etre mieux.

--
- GanGan -

www.system-linux.eu

(">
/
V_V

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS





--001636c59716fc0afe046824cac4
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<br><br>
<div class="gmail_quote">---------- Message transféré ----------<br>D e : <b class="gmail_sendername">bougie bougie</b> <span dir="ltr">&lt ;<a href="mailto:"></a>&gt;</ span><br>
Date : 22 avril 2009 15:31<br>Objet : Re: [mysql] passer de myisam a in nodb<br>À : GanGan &lt;<a href="mailto:"> team.com</a>&gt;<br><br><br>Deja, il faudrait que tu exportes ta base qui e st en prod pour pouvoir faire des testes sans tout casser.<br>
<br>
<div class="gmail_quote">Le 22 avril 2009 14:53, GanGan <span dir="ltr" >&lt;<a href="mailto:" target="_blank"> .com</a>&gt;</span> a écrit :
<div>
<div></div>
<div class="h5"><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0 px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><br>bonjour les amis !!<br><br>j &#39;ai un truc farfelu a faire transformer : une base mysql avec des table s<br>
myisam qui faudrai que je transforme en innodb<br>comment feriez vous ça ? la base est en prod :s j&#39;ai bien une idée mais y<br>a peut etre mie ux.<br><br>--<br>- GanGan -<br><br>www.system-linux.eu<br><br>(&quot;&gt;<b r>
/<br>V_V<br><font color="#888888"><br>--<br>Lisez la FAQ de la liste avan t de poser une question :<br><a href="http://wiki.debian.org/fr/FrenchLis ts" target="_blank">http://wiki.debian.org/fr/FrenchLists</a> Vous pouvez aussi ajouter le mot<br>
``spam&#39;&#39; dans vos champs &quot;From&quot; et &quot;Reply-To:&quot;< br><br>Pour vous DESABONNER, envoyez un message avec comme objet &quot;unsu bscribe&quot;<br>vers <a href="mailto: bian.org" target="_blank"></a> <br>
En cas de soucis, contactez EN ANGLAIS <a href="mailto: ebian.org" target="_blank"></a><br><br></font> </blockquote></div></div></div><br></div><br>

--001636c59716fc0afe046824cac4--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Franck Delage
GanGan a écrit :
|
| bonjour les amis !!

salut,

| j'ai un truc farfelu a faire transformer : une base mysql avec des tables
| myisam qui faudrai que je transforme en innodb

mais pourquoi donc ? le seul intérêt est l'utililsation des clés étrangères,
mais tu perds en performance.

| comment feriez vous ça ? la base est en prod :s j'ai bien une idée mais y
| a peut etre mieux.

moi je ferai ça tout bêtement : tu sauvegardes ta base avec mysqldump, puis
tu fais un sed pour changer le "engine=myisam" en "engine=innodb", et tu
réinjecte ta base et c'est marre. Faut juste que tu bloques l'accès à ta base
quelques minutes.

ou alors table par table avec des outils comme phpmyadmin ou mysql-query-browser,
mais ça sera plus long.

si je me gourre, les autres, dites le moi, mais je n'en ai pas l'impression.

--
Franck Delage
Création et hébergements de sites web
www.web82.net

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Julien Reitzel
Franck Delage a écrit :
moi je ferai ça tout bêtement : tu sauvegardes ta base avec mysqldump, puis
tu fais un sed pour changer le "engine=myisam" en "engine=innodb", et tu
réinjecte ta base et c'est marre. Faut juste que tu bloques l'accès à ta base
quelques minutes.

ou alors table par table avec des outils comme phpmyadmin ou mysql-query-browser,
mais ça sera plus long.

si je me gourre, les autres, dites le moi, mais je n'en ai pas l'impression.




Je dis peut-être une bêtise, mais
ALTER TABLE `matable` ENGINE = InnoDB


--
Julien.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Glennie Vignarajah
--Boundary-00=_cBy7JYFgYLMd2m/
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Le Wednesday 22 April 2009, GanGan(GanGan ) a
écrit:
bonjour les amis !!



Bonjour,

j'ai un truc farfelu a faire transformer : une base mysql avec des
tables myisam qui faudrai que je transforme en innodb
comment feriez vous ça ? la base est en prod :s j'ai bien une idà ©e
mais y a peut etre mieux.



La commande sql 'alter table toto Engine=innodb ;' permet de passer
la base en innoDB.
Attention : il vaut mieux avoir des backups sous la main...

Une bonne solution est :
* Dummper la base avec mysqldump : mysqldump --database=toto >
toto.dump
* sed -i.MyIsam -e 's/ ENGINE=MyISAM / ENGINE=InnoDB /g' toto.dump
: cela vous permettra de disposer dans le fichier toto.dump.MyIsam la
structure et les données au format MyIsam et dans le fichier la
structure et les données format innoDB.

* Restaurer les données puis vérifier que la structure a bien
changée par 'show create table LA_TABLE'

A+

Il suffit ensuite de restaurer soit l'un ou l'autre fichier.

--
http://www.glennie.fr
The reasonable man adapts himself to the world; the unreasonable one
persists in trying to adapt the world to himself. Therefore all
progress depends on the unreasonable man.


--Boundary-00=_cBy7JYFgYLMd2m/
Content-Type: text/html;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC- html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><st yle type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Courier New'; font-size:13pt; font-weight:400; font- style:normal;">Le Wednesday 22 April 2009, GanGan(GanGan &lt; .com&gt;) a écrit:<br>
&gt; bonjour les amis !!<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; ma rgin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-u ser-state:0;"><br></p>Bonjour,<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; ma rgin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-u ser-state:0;"><br></p>&gt; j'ai un truc farfelu a faire transformer : une b ase mysql avec des<br>
&gt; tables myisam qui faudrai que je transforme en innodb<br>
&gt; comment feriez vous ça ? la base est en prod :s j'ai bien une id ée<br>
&gt; mais y a peut etre mieux.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; ma rgin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-u ser-state:0;"><br></p> La commande sql 'alter table toto Engine=innodb ; ' permet de passer la base en innoDB.<br>
Attention : il vaut mieux avoir des backups sous la main...<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; ma rgin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-u ser-state:0;"><br></p> Une bonne solution est :<br>
* Dummper la base avec mysqldump : mysqldump --database=toto &gt; toto. dump<br>
* sed -i.MyIsam -e 's/ ENGINE=MyISAM / ENGINE=InnoDB /g' toto.dump : cela vous permettra de disposer dans le fichier toto.dump.MyIsam la structu re et les données au format MyIsam et dans le fichier la structure et les données format innoDB.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; ma rgin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-u ser-state:0;"><br></p> * Restaurer les données puis vérifier que la structure a bien changée par 'show create table LA_TABLE'<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; ma rgin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-u ser-state:0;"><br></p>A+<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; ma rgin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-u ser-state:0;"><br></p>Il suffit ensuite de restaurer soit l'un ou l'autre f ichier.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; ma rgin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-u ser-state:0;"><br></p>-- <br>
http://www.glennie.fr<br>
The reasonable man adapts himself to the world; the unreasonable one persis ts in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; ma rgin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-u ser-state:0;"><br></p></body></html>
--Boundary-00=_cBy7JYFgYLMd2m/--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Edi Stojicevic
* GanGan [2009-04-22 14:53:15 +0200] wrote :


bonjour les amis !!

j'ai un truc farfelu a faire transformer : une base mysql avec des tables
myisam qui faudrai que je transforme en innodb
comment feriez vous ça ? la base est en prod :s j'ai bien une idée mais y
a peut etre mieux.



Et si tu exposais ton idée ?

--
. ''`. (___/) E d i S T O J I C E V I C
: :' : (='.'=) http://www.debianworld.org
`. `~' (")_(") GPG: 0x1237B032
`-

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
GanGan
ouhai j'avais deja fais cette technique, je voulais en voir émerger une
autre !
avec phpmyadmin on peut faire ca ?

On Wed, 22 Apr 2009 15:42:28 +0200, Julien Reitzel
wrote:
Franck Delage a écrit :
moi je ferai ça tout bêtement : tu sauvegardes ta base avec mysqldump,


puis
tu fais un sed pour changer le "engine=myisam" en "engine=innodb", et tu



réinjecte ta base et c'est marre. Faut juste que tu bloques l'accès à


ta base
quelques minutes.

ou alors table par table avec des outils comme phpmyadmin ou


mysql-query-browser,
mais ça sera plus long.

si je me gourre, les autres, dites le moi, mais je n'en ai pas


l'impression.




Je dis peut-être une bêtise, mais
ALTER TABLE `matable` ENGINE = InnoDB


--
Julien.




--
- GanGan -

www.system-linux.eu

(">
/
V_V

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Franck Delage
GanGan a écrit :
|
| ouhai j'avais deja fais cette technique, je voulais en voir émerger une
| autre !

je vois pas ce que vous avez avec cette technique. elle n'a rien de bourrin.
en plus on travaille sur un backup, et pas directement sur la base comme
avec phpmyadmin, où on devrait en plus le faire table par table.

--
Franck Delage
Création et hébergements de sites web
www.web82.net

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Romaric DEFAUX
GanGan a écrit :
bonjour les amis !!

j'ai un truc farfelu a faire transformer : une base mysql avec des tables
myisam qui faudrai que je transforme en innodb
comment feriez vous ça ? la base est en prod :s j'ai bien une idée mais y
a peut etre mieux.




Juste deux p'tits conseils, avant de modifier tes tables (on sait jamais) :
- l'option innodb_file_per_table permet d'éviter d'avoir 1 seul gros fichier
- fait attention à la manière dont tu fais tes backups (si tu en fais :D
), si tu copies juste les fichiers de /var/lib/mysql je te conseillerais
plutôt d'utiliser mysqldump à l'avenir ;)

A+

Romaric




--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
François Boisson
Le Wed, 22 Apr 2009 16:32:26 +0200
Franck Delage a écrit:

je vois pas ce que vous avez avec cette technique. elle n'a rien de bourrin.
en plus on travaille sur un backup, et pas directement sur la base comme
avec phpmyadmin, où on devrait en plus le faire table par table.



Ils n'ont rien contre, tout le monde la suggère et de toute façon un backup de
la base s'impose.

François Boisson

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
François Cerbelle
GanGan a écrit :
bonjour les amis !!

j'ai un truc farfelu a faire transformer : une base mysql avec des tables
myisam qui faudrai que je transforme en innodb
comment feriez vous ça ? la base est en prod :s j'ai bien une idée mais y
a peut etre mieux.




Quelle que soit la solution que tu choisis, penses à regarder les contraintes imposées par le
stockage (les datafiles peuvent grandir, mais pas être réduits ensuite...)

Fanfan

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists Vous pouvez aussi ajouter le mot
``spam'' dans vos champs "From" et "Reply-To:"

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
1 2