Changer moteur de stockage BDD serveur SQL Privé
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Question

Changer moteur de stockage BDD serveur SQL Privé

Par
SylvainE
Créé le 2018-11-02 07:31:34 (edited on 2024-09-04 10:46:42) dans Bases de données

Bonjour,

Je test actuellement un serveur SQL privé pour héberger ma base de données. Je n'ai pas de connaissance en la matière...
Est-ce que quelqu'un sait comment modifier le moteur de stockage d'une base de données sur un serveur SQL privé ?
Je suppose qu'on doit avoir accès à un fichier de config quelque part, mais où ?

Merci pour votre aide


4 réponses ( Latest reply on 2018-12-03 15:55:20 Par
TBC_Ly0n
)

Bonjour Sylvain,

Que voulez-vous dire par moteur de stockage ?

Pour le moteur de base de données (par exemple MySQL, MariaDB, PostgreSQL, MongoDB) il faut supprimer l'instance et en créer une nouvelle avec le moteur désiré. (attention à bien sauvegarder vos données avant, en cas de suppression de l'instance, vous perdrez également l'accès aux sauvegardes liées à cette instance)

Concernant le moteur de stockage, pour MySQL/MariaDB nous laissons par défaut InnoDB que nous recommandons. Il vous est néanmoins possible de créer des objets en MyISAM, ce que nous déconseillons.

J'espère avoir répondu à vos interrogations, n'hésitez pas à faire un retour ici-même :)

Bonjour et merci pour votre réponse.

Je parle de ce moteur de stockage par défaut :



Sur mes bases SQL mutualisées, je n'ai pas le même moteur de stockage par défaut, il est bien en MyISAM :

conversion: https://sql.sh/1548-mysql-innodb-myisam


créer des objets en MyISAM, ce que nous déconseillons


rapidement, pourquoi?

Très rapidement parce qu'il n'est pas transactionnel et n'est pas loggé. (ces 2 notions sont en fait étroitement liées)
Il y a beaucoup plus de risques de se retrouver avec une incohérence (pas de transaction), corrompre ou perdre des données (pas de log) avec MyISAM en cas d'arrêt "impromptu" de MySQL (dépassement de mémoire étant le cas le plus fréquent).

Le web regorge de DBAs compétents qui expliquent les avantages et inconvénients des différents moteurs de stockage, MyISAM et InnoDB au premier plan. :)

merci....
et très rapidement, innoDB est plus rapide en général avec des jointures, ou c'est similaire, selon toi?

Je ne suis pas DBA mais de mon point de vue, MyISAM est plus rapide en lecture notamment parce qu'il est plus "brut", plus simple, InnoDB étant plus complexe avec un système d'arbre et de feuilles. (de nombreux benchs sont dispo)
Au niveau de jointures, elles sont directement gérées par l'optimiseur, donc agnostiques du système de stockage sous-jacent ; si une jointure doit aller lire dans 4 tables par exemple, le temps qu'elle prendra serait la somme du temps (en très gros) :
Parsing de la requête et création du plan d'exécution
Lecture dans les index
Lecture dans les 4 tables

Mais je pense que la plus grosse variable est comment est construite la requête et sur quels indexes elle s'appuie.
A part si il y a vraiment beaucoup de données à lire, le temps de lecture des données dans les tables selon le moteur est négligeable

Évidemment il ne s'agit que de mon avis et beaucoup d'autres variables rentrent en compte :)

re merci, j'avais bien précisé rapidement, donc je comprends bien que tout n'est pas forcément abordé.

```text MyISAM est le moteur historique. En lecture seule, il est le plus rapide parce qu'il s'abstrait des règles d'intégrité des bases de données relationnelles (plus d'information sur l'intégrité des données ici : https://fr.wikipedia.org/wiki/Propri%C3%A9t%C3%A9s_ACID )

Par contre, il a de multiples points faibles :

* verrouillage par table : dès que le pourcentage d'écriture augmente, la concurrence des requêtes entraine des verrouillages qui augmentent considérablement le temps pour obtenir les résultats obtenus.
* en cas de crash, pas de log de transactions pour rejouer les requêtes qui seraient passées au travers des mailles du filet
* pour les sauvegardes, même topo, MyISAM ne permet pas de garantir la cohérence des données entre les tables d'un même schéma.

InnoDB répond à toutes ces faiblesses. Il avait néanmoins deux inconvénients majeurs :

* Pendant des années, il a été réputé pour être très lent. Et c'était le cas, parce qu'il s'assurait de l'intégrité des données à tout moment. Au fil des versions de MySQL / MariaDB, les performances ont explosé et sont maintenant largement utilisables sur des flux importants de données.
* Pas moyen d'avoir des index fulltext. Ca a été corrigé il y a quelques années.

Dans les dernières versions de MariaDB, un nouveau moteur de stockage "Aria" a été créé pour remplacer MyISAM. Il n'y a plus aucune raison d'utiliser MyISAM aujourd'hui. Aria et InnoDB font mieux.
Et surtout, pour les sysadmins, c'est un gage de sécurité parce qu'on ne peut plus perdre de données. ```

Les réponses sont actuellement désactivées pour cette question.