Maison >développement back-end >tutoriel php >Résumer les connaissances liées à la question d'entretien PHP 'Base de données'
Cet article résume les connaissances liées à la question d'entretien PHP "Base de données". Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
Quels sont les produits courants du système de gestion de bases de données relationnelles ?
Réponse : Oracle, SQL Server, MySQL, Sybase, DB2, Access, etc.
Quelles parties le langage SQL comprend-il ? Quels sont les mots-clés d’action pour chaque section ?
Réponse : Le langage SQL comprend quatre parties : la définition des données (DDL), la manipulation des données (DML), le contrôle des données (DCL) et la requête de données (DQL).
Définition des données : créer une table, modifier une table, supprimer une table, créer un index, etc.
Manipulation des données : sélectionner, insérer, mettre à jour, supprimer,
Contrôle des données : accorder, révoquer
Requête de données : select
Que comprennent les contraintes d'intégrité ?
L'intégrité des données fait référence à l'exactitude et à la fiabilité des données.
Comprend :
(1) Intégrité de l'entité : stipule que chaque ligne du tableau est une entité unique dans le tableau.
(2) Intégrité du domaine : cela signifie que les colonnes du tableau doivent répondre à certaines contraintes de type de données, qui incluent la plage de valeurs, la précision et d'autres réglementations.
(3) Intégrité référentielle : signifie que les données de la clé primaire et de la clé étrangère des deux tables doivent être cohérentes, garantissant la cohérence des données entre les tables et empêchant la perte de données ou le stockage de données dénuées de sens dans la base de données. propagé.
(4) Intégrité définie par l'utilisateur : différents systèmes de bases de données relationnelles nécessitent souvent des contraintes particulières en fonction de leurs environnements d'application. L'intégrité définie par l'utilisateur est une contrainte pour une base de données relationnelle spécifique, qui reflète les exigences sémantiques auxquelles une application spécifique doit répondre.
Qu'est-ce qu'une transaction ? et ses caractéristiques ?
Transaction : il s'agit d'une série d'opérations de base de données et de l'unité logique de base des applications de base de données.
Caractéristiques :
(1) Atomicité : c'est-à-dire indivisibilité, soit toutes les transactions sont exécutées, soit aucune n'est exécutée.
(2) Cohérence ou cordabilité. L'exécution d'une transaction convertit la base de données d'un état correct à un autre état correct
(3) Isolement. Avant que la transaction ne soit correctement validée, toute modification apportée aux données par la transaction ne peut être fournie à aucune autre transaction,
(4) Persistance. Une fois qu'une transaction est soumise correctement, ses résultats seront enregistrés de manière permanente dans la base de données. Même s'il y a d'autres échecs après la soumission de la transaction, les résultats du traitement de la transaction seront enregistrés.
Compréhension simple : toutes les opérations d'une transaction réussissent ou échouent.
Qu'est-ce qu'un cadenas ?
La base de données est une ressource partagée utilisée par plusieurs utilisateurs. Lorsque plusieurs utilisateurs accèdent simultanément aux données, plusieurs transactions accèdent simultanément aux mêmes données dans la base de données. Si les opérations simultanées ne sont pas contrôlées, des données incorrectes peuvent être lues et stockées, détruisant la cohérence de la base de données.
Le verrouillage est une technologie très importante pour contrôler la concurrence des bases de données. Avant qu'une transaction n'agisse sur un objet de données, elle envoie d'abord une demande au système pour le verrouiller. Après le verrouillage, la transaction a un certain contrôle sur l'objet de données. Avant que la transaction ne libère le verrou, les autres transactions ne peuvent pas mettre à jour l'objet de données.
Types de verrous de base : les verrous incluent les verrous au niveau des lignes et les verrous au niveau des tables
Qu'est-ce qu'une vue ? Qu'est-ce qu'un curseur ?
Une vue est une table virtuelle qui a les mêmes fonctions qu'une table physique. Les vues peuvent être ajoutées, modifiées, vérifiées et exploitées. Une vue est généralement un sous-ensemble de lignes ou de colonnes d'une ou de plusieurs tables. Les modifications apportées à la vue n'affectent pas les tables sous-jacentes. Cela nous permet d'obtenir plus facilement des données que les requêtes multi-tables.
Curseur : il traite efficacement l'ensemble des résultats de la requête comme une unité. Le curseur peut être positionné sur une ligne spécifique de la cellule pour récupérer une ou plusieurs lignes de la ligne actuelle dans le jeu de résultats. Vous pouvez modifier la ligne actuelle du jeu de résultats. Les curseurs ne sont généralement pas utilisés, mais lorsque les données doivent être traitées une par une, les curseurs sont très importants.
Qu'est-ce qu'une procédure stockée ? Comment appeler ?
Une procédure stockée est une instruction SQL précompilée. L'avantage est qu'elle permet une conception modulaire, ce qui signifie qu'elle ne doit être créée qu'une seule fois et peut être appelée plusieurs fois dans le programme ultérieurement. Si une certaine opération nécessite plusieurs exécutions de SQL, l'utilisation de procédures stockées est plus rapide que l'exécution de simples instructions SQL. Les procédures stockées peuvent être appelées à l'aide d'un objet de commande.
Quel est le rôle de l'index ? Et quels sont ses avantages et ses inconvénients ?
Un index est une table de requête spéciale que le moteur de recherche de base de données peut utiliser pour accélérer la récupération des données. C'est très similaire à la table des matières d'un livre dans la vraie vie. Vous pouvez trouver les données souhaitées sans interroger l'intégralité du livre. Les index peuvent être uniques et la création d'un index vous permet de spécifier une seule ou plusieurs colonnes.
L'inconvénient est que cela ralentit la saisie des données et augmente également la taille de la base de données.
Comment comprendre les trois paradigmes de manière populaire ?
Première forme normale : 1NF est une contrainte atomique sur les attributs, qui nécessite que les attributs soient atomiques et ne peuvent pas être décomposés.
Deuxième forme normale : 2NF est une contrainte unique sur les enregistrements, qui nécessite que les enregistrements aient un caractère unique ; identifiants , c'est-à-dire l'unicité de l'entité ;
Troisième forme normale : 3NF est une contrainte sur la redondance des champs, c'est-à-dire qu'aucun champ ne peut être dérivé d'autres champs et nécessite que le champ ne soit pas redondant. .
Qu'est-ce qu'une table de base ? Qu'est-ce qu'une vue ?
La table de base est une table qui existe indépendamment. En SQL, une relation correspond à une table.
Une vue est une table dérivée d'une ou plusieurs tables de base. La vue elle-même n'est pas stockée indépendamment dans la base de données, c'est une table virtuelle
Comment décrire les avantages des vues ?
(1) Les vues peuvent simplifier les opérations des utilisateurs
(2) Les vues permettent aux utilisateurs de visualiser les mêmes données sous plusieurs perspectives ;
(3) Les vues offrent un certain degré d'indépendance logique pour la base de données ;
(4) Les vues peuvent fournir une protection de sécurité pour les données confidentielles.
Que signifie NULL ?
La valeur NULL représente UNKNOWN (inconnu) : elle ne représente pas "" (chaîne vide).
Toute comparaison avec une valeur NULL produira une valeur NULL.
Vous ne pouvez comparer aucune valeur à une valeur NULL et vous attendre logiquement à obtenir une réponse.
Utilisez IS NULL pour un jugement NULL
Quelles sont les différences entre les clés primaires, les clés étrangères et les index ?
La différence entre la clé primaire, la clé étrangère et l'index
Définition :
Clé primaire – identifie de manière unique un enregistrement, ne peut pas être dupliquée et ne peut pas être vide
Clé étrangère – la clé étrangère de une table appartient à une autre table La clé primaire et la clé étrangère peuvent avoir des doublons et peuvent être vides
Index – ce champ n'a pas de valeurs en double, mais peut avoir une valeur nulle
Fonction :
Clé primaire – utilisée pour garantir intégrité des données
Clé externe –
index utilisé pour établir des connexions avec d'autres tables – pour augmenter la vitesse de tri des requêtes
Numéro :
Clé primaire – il ne peut y avoir qu'une seule clé primaire
Clé étrangère – une table peut avoir plusieurs index de clé étrangère
– Une table peut avoir plusieurs index uniques
Que pouvez-vous utiliser pour garantir qu'un champ d'une table n'accepte que des valeurs dans une plage spécifique La restriction de vérification, qui se trouve dans la table de la base de données, est définie pour limiter les valeurs saisies dans cette colonne.
Dites-moi quelles sont les méthodes disponibles pour optimiser les instructions SQL ? (Choisissez-en quelques-uns) (1) Dans la clause Where : la connexion entre les tables Where doit être écrite avant les autres conditions Where et les conditions qui peuvent filtrer le nombre maximum d'enregistrements doivent être écrites à la fin. de la clause Where .HAVING en dernier.
(2) Remplacez IN par EXISTS et NOT IN par NOT EXISTS.
(3) Évitez d'utiliser des calculs sur les colonnes d'index
(4) Évitez d'utiliser IS NULL et IS NOT NULL sur les colonnes d'index
(5) Pour optimiser les requêtes, les analyses de table complètes doivent être évitées autant que possible. Tout d'abord, il convient d'envisager la création d'index sur les colonnes impliquées dans Where et Order By.
(6) Vous devriez essayer d'éviter de porter des jugements de valeur nulle sur les champs de la clause Where, sinon le moteur abandonnera l'utilisation de l'index et effectuera une analyse complète de la table
(7) Essayez d'éviter de créer une valeur nulle. jugements sur les champs de la clause Where. Opération d'expression, ce qui amènera le moteur à abandonner l'utilisation de l'index et à effectuer une analyse complète de la table.
Quelle est la différence entre « sous-requête corrélée » et « non-requête ? sous-requête corrélée' dans l'instruction SQL ? (1) La sous-requête non corrélée est une sous-requête indépendante de la requête externe. La sous-requête est exécutée une fois au total et la valeur est transmise à la requête externe après exécution.
(2) L'exécution de la sous-requête concernée dépend des données de la requête externe. Lorsque la requête externe exécute une ligne, la sous-requête est exécutée une fois.
Les sous-requêtes non corrélées sont donc plus efficaces que les sous-requêtes corrélées
Quelle est la différence entre char et varchar ? char est un type de longueur fixe et varchar est un type de longueur variable.
Différence :
Dans une colonne de données de type char(M), chaque valeur occupe M octets. Si une longueur est inférieure à M, MySQL la remplira avec des espaces à droite. (Les espaces remplis seront supprimés lors de l’opération de recherche).
Dans la colonne de données de type varchar(M), chaque valeur n'occupe que juste assez d'octets plus un octet pour enregistrer sa longueur (c'est-à-dire que la longueur totale est de L+1 octets).
MyISAM est un moteur de stockage non transactionnel ; adapté aux applications avec des verrous de table fréquents, aucun blocage ne prend en charge les transactions ; Convient aux petites données et aux petites concurrences
Innodb est un moteur de stockage qui prend en charge les transactions adapté aux applications avec de nombreuses opérations d'insertion et de mise à jour s'il est conçu correctement, il s'agit d'un verrouillage de ligne (la plus grande différence réside dans le niveau du lock); adapté au big data, grand concurrent.
Quels sont les types de tables de données MyISAM, InnoDB, HEAP, BOB, ARCHIVE, CSV, etc.
InnoDB : prend en charge les transactions, les clés étrangères et d'autres fonctionnalités, ainsi que le verrouillage des lignes de données. Il prend beaucoup de place et ne prend pas en charge l'indexation en texte intégral, etc.
La base de données MySQL est utilisée comme stockage du système de publication. Plus de 50 000 entrées sont ajoutées en une journée. L'exploitation et la maintenance devraient durer trois ans.
(1) Concevez une structure de base de données bien conçue, autorisez une redondance partielle des données et essayez d'éviter les requêtes de jointure pour améliorer l'efficacité.
(2) Sélectionnez le type de données de champ de table et le moteur de stockage appropriés, et ajoutez des index de manière appropriée.
(3) Séparez la réplication maître-esclave MySQL de la lecture à l'écriture.
(4) Divisez la table de données en tables pour réduire la quantité de données dans une seule table et améliorer la vitesse des requêtes.
(5) Ajouter un mécanisme de mise en cache, tel que redis, memcached, etc.
(6) Pour les pages qui ne changent pas fréquemment, générez des pages statiques (telles que la mise en cache ob).
(7) Écrivez du SQL efficace. Par exemple, SELECT * FROM TABEL est remplacé par SELECT field_1, field_2, field_3 FROM TABLE.
Pour un site Web à fort trafic, quelle méthode utilisez-vous pour résoudre le problème des statistiques de visites de pages ?
(1) Confirmez si le serveur peut prendre en charge le trafic actuel.
(2) Optimiser l'accès à la base de données.
(3) Interdire l'accès externe aux liens (hotlinking), comme le hotlinking d'images.
(4) Téléchargement du fichier de contrôle.
(5) Effectuez un équilibrage de charge et utilisez différents hôtes pour décharger le trafic.
(6) Utiliser un logiciel de statistiques de navigation pour comprendre le nombre de visites et effectuer une optimisation ciblée.
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!