8768 sujets

Développement web côté serveur, CMS

bonjour

1) J'ai dans ma page web pour phpmyadmin 2 bases de donnée :
---l une est situé directement à la racine
---l'autre est situé dans ce que j'appellerais un répertoire de nom hks1407.
1a Comment a été créer se répertoire hks1407? ( je ne m en souviens plus )
upload/48731-acmysqldat.jpg

2) pour mysql selon l hébergeur la structure de la table est InnoDB ou Myisam ?
2a y a t il besoin d un convertisseur pour passer de innoDB vers Myisam "structure" ?
2b cela a t il de l importance lors de l import export "data" ? ( mysql fait il la convertion )
upload/48731-acinnodbmy.jpg

3) comment se fait il que sur mon serveur mysql local j ai utf8mb4_unicode_ci alors que sur le
serveur internet j ai utf8_general_ci .
En modifiant la valeur par cettedernière phpmysqladmin continue a me montrer utf8mb4_unicode_ci !!
comment faire pour remettre utf8_unicode_ci ?

upload/48731-acunicodem.jpg

Merci
Modifié par 75lionel (04 Jul 2016 - 15:28)
1) MyAdmin crée automatiquement un répertoire lorsque des bases sont préfixées (suivi d'un _) de la même manière. Ex : projet_dev et projet_prod vont se retrouver sous un même répertoire "projet".

2) Aucune idée Smiley cligne

3) Mon serveur local fait la même chose et ça ne pose ensuite problème que sur les vieux serveur qui ne reconnaissent pas cette collation. Un rechercher remplacer permet de solutionner le problème.
Modifié par bzh (04 Jul 2016 - 19:05)
Merci pour votre réponse
1)

2)
Il semble que pour certain CMS et donc basé sur un sgbd ; les tables n'ont pas tous le même type de structure certains MYisam d autre innodb. Les développeurs d 'extension pour CMS ont ils fait de choix explicitement ou non je ne sais pas mais vais faire mon enquête ......

3) justement non en utilise phpmysqlAdmin (pma) je n arrive pas à modifier cette valeur même ci pma me permet de la modifier !!
Modifié par 75lionel (04 Jul 2016 - 22:10)
Modérateur
Le moteur (Myisam ou Inndb) est lié au tables. Un serveur mysql a un moteur par défaut qui sera attribué aux nouvelles tables s'il n'est pas spécifié lors de la création. Mais chaque table a son propre moteur. On peut passer très simplement de l'un à l'autre:


ALTER TABLE ma_table ENGINE=INNODB;
ALTER TABLE ma_table ENGINE=MYISAM;


Innodb permet de gérer les transactions, les clés étrangères et le lock par ligne notamment mais est plus lourd et lent. Myisam supporte l'indexation fulltext, fait du lock par table et est plus rapide. Certaines requêtes sont donc possibles sur l'un et par sur l'autre (et vice-versa). Donc changer de moteur est très facile sur la base de donnée, mais cela peut demander des modifications du code. Lors d'un export en SQL, le moteur est exporté aussi. Si l'import/export passe par des formats plus farfelus (csv/excel/ou que sais-je) ces données seront probablement perdues il convient donc d'y être attentif.

Innodb est adapté pour les tables ou bases nécessitant une haute intégrité, et lorsque beaucoup d'opérations de modifications ont lieu. Myisam est adapté pour les tables ou bases nécessitant beaucoup de performance et ou les opérations sont principalement des SELECT.

En gros Innodb est plutôt orienté application de gestion et Myisam site web. Mais pour une optimisation on peut mélanger les deux. Par exemple sur un shop en ligne tout ce qui est gestion des commandes, paiements ou facturation sera plutôt en Innodb, mais on pourra choisir, pour optimisation, de mettre les news ou les commentaires des articles en Myisam.
Modifié par kustolovic (05 Jul 2016 - 02:52)