


Raisons et solutions pour lesquelles MySQL ne peut pas créer de clés étrangères
Cet article présente principalement les raisons et les solutions de l'incapacité de MySQL à créer des clés étrangères, puis vous donne des informations opportunes sur l'incapacité de MySQL à créer des clés étrangères et à interroger les propriétés des clés étrangères. Les amis intéressés devraient y jeter un œil.
Lors de l'association de deux tables, les clés étrangères ne peuvent pas être créées. Sur ce blog, nous pouvons voir que le problème réside dans la cohérence des options Charset et Collate du point 6 au niveau de la table et au niveau du champ. Le jeu de caractères d'encodage et l'assemblage de mes deux tables sont incohérents et les deux tables exécutent l'instruction SQL :
alter table 表名 convert to character set utf8;
Résout parfaitement le problème ; 🎜>
ps : Jetons un coup d'œil à l'incapacité de MySQL à créer des clés étrangères et à interroger les attributs des clés étrangères
Explication MyISAM et InnoDBInnoDB et MyISAM sont les deux types de tables les plus couramment utilisés par de nombreuses personnes lors de l'utilisation de MySQL. Les deux types de tables ont leurs propres avantages et inconvénients, selon l'application spécifique. La différence fondamentale est la suivante : le type MyISAM ne prend pas en charge le traitement avancé tel que le traitement des transactions, contrairement au type InnoDB. La table de type MyISAM met l'accent sur les performances et ses temps d'exécution sont plus rapides que le type InnoDB, mais elle ne fournit pas de prise en charge des transactions, tandis qu'InnoDB fournit une prise en charge des transactions et des fonctions de base de données avancées telles que les clés étrangères.
Voici quelques détails et différences spécifiques d'implémentation :
◆1.InnoDB ne prend pas en charge les index de type FULLTEXT.
◆2. InnoDB n'enregistre pas le nombre spécifique de lignes dans la table, c'est-à-dire que lors de l'exécution de select count(*) from table, InnoDB doit analyser la table entière pour calculer le nombre de lignes qu'elle contient. le sont, mais MyISAM n'a besoin que d'une simple lecture du nombre de lignes enregistrées. Notez que lorsque l'instruction count(*) contient une condition Where, les opérations des deux tables sont les mêmes.
◆3. Pour les champs de type AUTO_INCREMENT, InnoDB doit contenir un index avec uniquement ce champ, mais dans la table MyISAM, un index conjoint peut être établi avec d'autres champs.
◆4. Lors de la suppression de la table, InnoDB ne recréera pas la table, mais la supprimera ligne par ligne.
◆5. L'opération LOAD TABLE FROM MASTER ne fonctionne pas pour InnoDB La solution consiste d'abord à changer la table InnoDB en table MyISAM, puis à la changer en table InnoDB après avoir importé les données. pour les tables supplémentaires utilisées par InnoDB avec des attributs (tels que les clés étrangères) ne s'appliquent pas.
De plus, le verrouillage des lignes de la table InnoDB n'est pas absolu. Si MySQL ne peut pas déterminer la plage à analyser lors de l'exécution d'une instruction SQL, la table InnoDB verrouillera également la table entière, par exemple la table de mise à jour. set num=1 où le nom ressemble à « %aaa% »
La principale différence entre les deux types est qu'Innodb prend en charge le traitement des transactions, les clés étrangères et les verrous au niveau des lignes. MyISAM ne le prend pas en charge. Par conséquent, MyISAM est souvent considéré comme ne pouvant être utilisé que dans de petits projets.
Du point de vue des utilisateurs qui utilisent MySQL, Innodb et MyISAM sont tous deux préférés. Si la plate-forme de base de données veut répondre aux exigences : stabilité de 99,9 %, évolutivité pratique et haute disponibilité, MyISAM est certainement le meilleur choix. choix.
Les raisons sont les suivantes :1. La plupart des projets menés sur la plateforme sont des projets avec plus de lectures et moins d'écritures, et les performances en lecture de MyISAM sont bien mieux qu'Innodb.
2. L'index et les données de MyISAM sont séparés et l'index est compressé, ce qui augmente en conséquence l'utilisation de la mémoire. Il peut charger plus d'index, et l'index et les données d'Innodb sont étroitement liés. Aucune compression n'est utilisée, ce qui rendra Innodb beaucoup plus grand que MyISAM.
3. Il arrive souvent tous les 1 ou 2 mois qu'un développeur d'application mette accidentellement à jour une table et écrit la mauvaise plage, ce qui empêche l'utilisation normale de la table. À ce moment-là, la supériorité de MyISAM se reflète. . Retirez simplement le fichier correspondant à la table du package compressé copié ce jour-là, placez-le dans un répertoire de base de données, puis sauvegardez-le dans SQL et réimportez-le dans la base de données principale, et remplissez le binlog correspondant. S'il s'agit d'Innodb, je crains que cela ne puisse pas être aussi rapide. Ne me dites pas de demander à Innodb d'utiliser régulièrement le mécanisme d'exportation xxx.sql pour sauvegarder, car la plus petite instance de base de données a un volume de données de plusieurs dizaines de gigaoctets. .
4. Du point de vue de la logique de l'application, select count(*) et order by sont les opérations les plus fréquentes, représentant plus de 60 % du total des instructions SQL, et ce type d'opération Innodb en fait peut verrouille également les tables Beaucoup de gens pensent qu'Innodb est un verrou au niveau de la ligne, qui n'est valable que là où sa clé primaire verrouillera la table entière.
5. Il y a souvent de nombreux services d'application qui ont besoin que je leur fournisse régulièrement des données sur certaines tables. MyISAM est très pratique. Envoyez-leur simplement les fichiers frm.MYD et MYI correspondant à cette table et laissez-les vous. Vous pouvez simplement démarrer vous-même la base de données de la version correspondante, mais Innodb doit exporter xxx.sql, car le simple fait de donner le fichier à d'autres ne pourra pas l'utiliser en raison de l'influence du fichier de données du dictionnaire.
6. Si on le compare à MyISAM pour les opérations d'écriture d'insertion, Innodb ne peut toujours pas atteindre les performances d'écriture de MyISAM s'il s'agit d'opérations de mise à jour basées sur un index, bien que MyISAM puisse être inférieur à Innodb, mais avec une concurrence aussi élevée. écrit, La question de savoir si la base de données esclave peut rattraper son retard est également un problème. Il est préférable de le résoudre via une architecture de sous-base de données et de sous-tables multi-instances.
7. Si MyISAM est utilisé, le moteur de fusion peut accélérer considérablement le développement du département d'application. Il leur suffit d'effectuer quelques opérations de comptage sélectionné (*) sur cette table de fusion, ce qui est très approprié pour les grands. projets avec un montant total d'environ des centaines de millions de lignes. Un tableau commercial d'un certain type (tel que des journaux, des statistiques d'enquête).
当然Innodb也不是绝对不用,用事务的项目就用Innodb的。另外,可能有人会说你MyISAM无法抗太多写操作,但是可以通过架构来弥补。
SELECT * FROM information_schema.key_column_usage WHERE table_name='表名' ; show create table 表名 ;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

MySQL est un système de gestion de base de données relationnel open source. 1) Créez une base de données et des tables: utilisez les commandes CreateDatabase et CreateTable. 2) Opérations de base: insérer, mettre à jour, supprimer et sélectionner. 3) Opérations avancées: jointure, sous-requête et traitement des transactions. 4) Compétences de débogage: vérifiez la syntaxe, le type de données et les autorisations. 5) Suggestions d'optimisation: utilisez des index, évitez de sélectionner * et utilisez les transactions.

Vous pouvez ouvrir PHPMYADMIN via les étapes suivantes: 1. Connectez-vous au panneau de configuration du site Web; 2. Trouvez et cliquez sur l'icône PHPMYADMIN; 3. Entrez les informations d'identification MySQL; 4. Cliquez sur "Connexion".

MySQL est un système de gestion de la base de données relationnel open source, principalement utilisé pour stocker et récupérer les données rapidement et de manière fiable. Son principe de travail comprend les demandes des clients, la résolution de requête, l'exécution des requêtes et les résultats de retour. Des exemples d'utilisation comprennent la création de tables, l'insertion et la question des données et les fonctionnalités avancées telles que les opérations de jointure. Les erreurs communes impliquent la syntaxe SQL, les types de données et les autorisations, et les suggestions d'optimisation incluent l'utilisation d'index, les requêtes optimisées et la partition de tables.

MySQL est choisi pour ses performances, sa fiabilité, sa facilité d'utilisation et son soutien communautaire. 1.MySQL fournit des fonctions de stockage et de récupération de données efficaces, prenant en charge plusieurs types de données et opérations de requête avancées. 2. Adoptez l'architecture client-serveur et plusieurs moteurs de stockage pour prendre en charge l'optimisation des transactions et des requêtes. 3. Facile à utiliser, prend en charge une variété de systèmes d'exploitation et de langages de programmation. 4. Avoir un solide soutien communautaire et fournir des ressources et des solutions riches.

Redis utilise une architecture filetée unique pour fournir des performances élevées, une simplicité et une cohérence. Il utilise le multiplexage d'E / S, les boucles d'événements, les E / S non bloquantes et la mémoire partagée pour améliorer la concurrence, mais avec des limites de limitations de concurrence, un point d'échec unique et inadapté aux charges de travail à forte intensité d'écriture.

MySQL et SQL sont des compétences essentielles pour les développeurs. 1.MySQL est un système de gestion de base de données relationnel open source, et SQL est le langage standard utilisé pour gérer et exploiter des bases de données. 2.MySQL prend en charge plusieurs moteurs de stockage via des fonctions de stockage et de récupération de données efficaces, et SQL termine des opérations de données complexes via des instructions simples. 3. Les exemples d'utilisation comprennent les requêtes de base et les requêtes avancées, telles que le filtrage et le tri par condition. 4. Les erreurs courantes incluent les erreurs de syntaxe et les problèmes de performances, qui peuvent être optimisées en vérifiant les instructions SQL et en utilisant des commandes Explication. 5. Les techniques d'optimisation des performances incluent l'utilisation d'index, d'éviter la numérisation complète de la table, d'optimiser les opérations de jointure et d'améliorer la lisibilité du code.

La position de MySQL dans les bases de données et la programmation est très importante. Il s'agit d'un système de gestion de base de données relationnel open source qui est largement utilisé dans divers scénarios d'application. 1) MySQL fournit des fonctions efficaces de stockage de données, d'organisation et de récupération, en prenant en charge les systèmes Web, mobiles et de niveau d'entreprise. 2) Il utilise une architecture client-serveur, prend en charge plusieurs moteurs de stockage et optimisation d'index. 3) Les usages de base incluent la création de tables et l'insertion de données, et les usages avancés impliquent des jointures multiples et des requêtes complexes. 4) Des questions fréquemment posées telles que les erreurs de syntaxe SQL et les problèmes de performances peuvent être déboguées via la commande Explication et le journal de requête lente. 5) Les méthodes d'optimisation des performances comprennent l'utilisation rationnelle des indices, la requête optimisée et l'utilisation des caches. Les meilleures pratiques incluent l'utilisation des transactions et des acteurs préparés

La surveillance efficace des bases de données Redis est essentielle pour maintenir des performances optimales, identifier les goulots d'étranglement potentiels et assurer la fiabilité globale du système. Le service Redis Exporter est un utilitaire puissant conçu pour surveiller les bases de données Redis à l'aide de Prometheus. Ce didacticiel vous guidera à travers la configuration et la configuration complètes du service Redis Exportateur, en vous garantissant de créer des solutions de surveillance de manière transparente. En étudiant ce tutoriel, vous réaliserez les paramètres de surveillance entièrement opérationnels
