Réécrire moteur MySQL

Fermé
babagreen Messages postés 102 Date d'inscription mercredi 22 avril 2015 Statut Membre Dernière intervention 1 juin 2015 - 29 avril 2015 à 13:52
babagreen Messages postés 102 Date d'inscription mercredi 22 avril 2015 Statut Membre Dernière intervention 1 juin 2015 - 29 avril 2015 à 16:31
Bonjour à tous,
Etant donner que je n'ai trouver aucun moteur MySQL me permettant de créer 1 fichier contenant toutes les tables (je rappel que MySQL génère habituellement un dossier portant le nom de la base puis des fichier pour chaque tables).

Pour répondre à la demande qui m'est poser je dois réécrire un moteur MySQL qui au lancement du script de création de la base génère un et un seul fichier pour toutes la base ce fichier devras contenir les structure de table, les indexes,... Mais pour ça j'aimerais avoir vos avis, comment bien s'y prendre pour réécrire un moteur MySQL?
(Pour tous ceux qui voudrais me dire d'utiliser le moteur InnoDB en mettant file-per-table à 0 ou à 1 ce n'est pas la solution à mon problème car le file-per-table porte bien son nom il permet de créer un ou plusieurs fichiers par table.)

Merci.
A voir également:

5 réponses

jee pee Messages postés 39611 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 23 avril 2024 9 230
Modifié par jee pee le 29/04/2015 à 14:50
Bonjour,

De tes précédentes questions je n'ai pas compris le pourquoi de cette demande ?

Après réécrire un nouveau moteur mysql, ce sont surement des années/hommes de travail. Tu peux aussi modifier les sources existants, Mysql étant open/source.

Tu devrais commencer par récupérer les sources et les compiler/linker pour générer ton propre noyau. c'est la première étape pour pouvoir développer.

Puis dans les sources tu t'attaques au répertoire /innobase qui contient les sources de cette partie et tu les modifies à ton gout.

Quelqu'un a commencé le travail pour toi, il a recensé ces sources et leur objet : https://dev.mysql.com/doc/internals/en/files-in-innodb-sources.html

;-)

        Un étranger, c'est un ami qu'on n'a pas encore rencontré.
0
babagreen Messages postés 102 Date d'inscription mercredi 22 avril 2015 Statut Membre Dernière intervention 1 juin 2015 1
29 avril 2015 à 14:57
Alors si tu veut tous savoir le pourquoi c'est simple j'ai un demandeur qui à mal lu la doc MySQL et qui a cru que le file-per-table pourrait permettre de créer un fichier comme access le ferait avec tous dedans et non comme MySQL.

et j'ai eu la bonne idée de lui dire que la seul solution pour arrivé ce résultat c'étais reprendre les sources et de modifier tous ça pour avoir un moteur qui ne génère pas un dossie puis plusieur fichier .frm, mais bien un moteur qui créé un seul et unique fichier.

Mon demandeur ne voulant pas accepter qu'il à mal compris je n'ai pas le choix de faire ce moteur sinon je perd mon stage et le diplôme qui va avec
0
jee pee Messages postés 39611 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 23 avril 2024 9 230 > babagreen Messages postés 102 Date d'inscription mercredi 22 avril 2015 Statut Membre Dernière intervention 1 juin 2015
29 avril 2015 à 15:12
Donc la démarche que je t'ai proposé plus haut est la bonne.

Je ne connais pas mysql. Mais tu devrais faire des recherches sur ibdata1.

Car lui son soucis c'est que toutes les tables étaient dans un seul fichier : http://snailitblog.puechaldou.com/2013/05/23/tip-mysql-innodb_file_per_table-ou-comment-utiliser-des-fichiers-de-table-separes-pour-eviter-le-manque-despace-disque/
0
babagreen Messages postés 102 Date d'inscription mercredi 22 avril 2015 Statut Membre Dernière intervention 1 juin 2015 1 > jee pee Messages postés 39611 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 23 avril 2024
29 avril 2015 à 15:16
D'accord je vais déjà regarder le moteur qu'il utilise car le demandeur aimerais que ça soit sur une base InnoDB.
merci de tes réponses
0
jee pee Messages postés 39611 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 23 avril 2024 9 230
Modifié par jee pee le 29/04/2015 à 15:29
Ton tuteur il s'y connait ou pas ? Il n'est pas en train de titiller pour que tu cherches ?

Quand on cherche un peu : https://dev.mysql.com/doc/refman/8.0/en/innodb-multiple-tablespaces.html

Et de ce que je comprends il y a
innodb_file_per_table=1
, mais pas =0, pour l'enlever il faut supprimer la ligne.
0
babagreen Messages postés 102 Date d'inscription mercredi 22 avril 2015 Statut Membre Dernière intervention 1 juin 2015 1
Modifié par babagreen le 29/04/2015 à 15:48
Non il dis s'y connaitre mais plus le temps passe plus je m'aperçois que non.
Déjà essayer ça n'arrange pas le probleme car sa modifie juste le nombre de fichier générer par table et non pour la base en entière. En gros sa ne céé que les fichier table.frm et plus les Table.idb
0
Utilisateur anonyme
29 avril 2015 à 15:27
Bonjour

Es-tu sûr d'avoir bien compris ce que voulait ton demandeur ?

Ça m'étonne que ton demandeur exige que la base FONCTIONNE avec un fichier unique : pour s'intéresser à la façon dont la base marche, il faut avoir des compétences et quand on a ces compétences, on connaît l'ampleur du travail que ça représente, on ne confie pas ça a un stagiaire. À moins d'un besoin spécifique, mais j'aimerais bien en connaître la justification tant ça semble absurde.

Tu es sûr que ce n'est pas seulement pour l'installation, la sauvegarde ou le transfert qu'il veut un fichier unique ? Là ce serait une demande sensée et dont on voit l'intérêt.
0
babagreen Messages postés 102 Date d'inscription mercredi 22 avril 2015 Statut Membre Dernière intervention 1 juin 2015 1
Modifié par babagreen le 29/04/2015 à 15:46
On ne le donne encore moins à un stagiaire de 2eme année de DUT info
Oui il l'a très clairement dis depuis 2semaine il veut un fichier comme pourrait proposer access avec ses fichier.mdb
mais en MySQL j'ai deja essayer de lui montrer j'ai créer une base en local, traduit sa base access en MySQL mais non il ne veut pas qu'il y est plusieurs fichiers (pour ma part je trouve ça stupide autant utiliser access qui le fait très bien).
Ces justification: aucune, juste vouloir passer de access à MySQL. Et bien sur n'avoir qu'un seul fichier, car il est persuader qu'on lui à déjà donner une base MySQL comme ça une fois..
0
Utilisateur anonyme
29 avril 2015 à 16:04
car il est persuader qu'on lui à déjà donner une base MySQL comme ça une fois
C'est bien pour ça que je parle d'installation ou de transfert de la base.
Oui, avec mysql, tu peux très bien donner une base complète à quelqu'un en un seul fichier, il n'y a aucun problème. À mon avis, c'est de ça qu'il parle.
T'a-t-il vraiment dit : "non, pas seulement pour le transfert, je veux que le moteur travaille directement sur un seul fichier" ?
0
babagreen Messages postés 102 Date d'inscription mercredi 22 avril 2015 Statut Membre Dernière intervention 1 juin 2015 1
29 avril 2015 à 16:11
Peut-être que ça va t'éclairé sur ce qu'il veut: lorsque je lance mon script de création et d'insertion il regarde le dossier ou la base se crée et il voudrait 1 seul fichier dedans et non pas 1 fichier.frm par table.
Dans mon cas je suis le chemin:K:\Stage\Stage\EasyPHP-DevServer-14.1VC11\binaries\mysql\data\movedb

Ensuite dans le dossier movedb il y a le fichier db.opt (normal) puis les fichier table1.frm, table2.frm, ect...
et lui il ne voudrais as tous ces fichier.frm lors de la création..
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jee pee Messages postés 39611 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 23 avril 2024 9 230
29 avril 2015 à 16:22
Tu pourrais explorer aussi ces pistes :
  • le tablespace
  • le raw device (mais attention à la lecture on ne sait pas bien si le raw device va s'approprier la partition D: ou juste creer un fichier)

0
babagreen Messages postés 102 Date d'inscription mercredi 22 avril 2015 Statut Membre Dernière intervention 1 juin 2015 1
Modifié par babagreen le 29/04/2015 à 16:23
Tablespace j'ai essayer j'a une erreur chaque fois que j'essais de le faire:

#1478 - Table storage engine 'InnoDB' does not support the create option 'TABLESPACE or LOGFILE GROUP'
0
jee pee Messages postés 39611 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 23 avril 2024 9 230 > babagreen Messages postés 102 Date d'inscription mercredi 22 avril 2015 Statut Membre Dernière intervention 1 juin 2015
29 avril 2015 à 16:29
0
babagreen Messages postés 102 Date d'inscription mercredi 22 avril 2015 Statut Membre Dernière intervention 1 juin 2015 1 > jee pee Messages postés 39611 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 23 avril 2024
29 avril 2015 à 16:31
je suis en 5.6.15 avec easyPHP
0