Maison  >  Article  >  base de données  >  MySQL est souvent mal compris par nous

MySQL est souvent mal compris par nous

黄舟
黄舟original
2017-02-21 10:38:02963parcourir



MySQL, en tant que force majeure des bases de données, existe partout dans nos différents systèmes, je crois que tout le monde le connaît ! Cependant, ce n'est pas parce que vous savez que vous pouvez l'utiliser que vous connaissez les détails, alors faisons le point sur certaines des choses auxquelles nous ne prêtons généralement pas beaucoup d'attention, d'abord pour le plaisir, et ensuite pour nous empêcher d'entrer dans ce domaine. pièges.

Avertissement : si vous voulez connaître les détails, lisez le code source. Je n'ai vraiment pas cette capacité, donc je ne peux parler de certaines choses que d'un point de vue unilatéral !

1. Insensible à la casse (nom du champ)

Les noms de champs de requête MySQL ne sont pas sensibles à la casse, mais le contenu de la requête est sensible à la casse, donc si vous pouvez utiliser des traits de soulignement pour nommer, n'utilisez pas de distinction de casse lors de la dénomination, telle que :

  1. SELECT uid, v_state FROM all_user WHERE username = 'sunyue';

  2. SELECT uid,v_state FROM all_user WHERE USERNAME = 'sunyue'; // Identique au résultat de la déclaration précédente, les champs ne sont pas sensibles à la casse.


  3. SELECT uid,v_state FROM all_user WHERE USERname = 'SUNYUE'; Écrire

Copier le code

2. Correspondance floue ([_] correspond à n'importe quel caractère)

Bien que la correspondance floue a une signification un peu régulière, vous ne pouvez pas la faire correspondre dans la base de données aussi librement qu'une correspondance normale. Essayez simplement de simplifier la correspondance autant que possible ! (Nom supplémentaire : sphinx de recherche en texte intégral)

  1. SELECT uid,v_state FROM all_user WHERE USERNAME LIKE 'su_yue' //Underscore [_] correspond à n'importe quel single ; caractère

  2. SELECT uid,v_state FROM all_user WHERE USERNAME LIKE 'su%yue'; //% correspond à n'importe quel nombre de caractères

  3. SELECT uid ,v_state FROM all_user WHERE USERNAME NOT LIKE 'su%'; /t like Obtenir les informations non incluses

Copier le code

3. Comment deviner une fonction

En tant que base de données relationnelle, MySQL s'adresse aux développeurs ordinaires, donc tout est aussi convivial que possible. Donc, si vous ne savez pas ce qu’est une certaine fonction, alors peut-être pouvez-vous la deviner, car si une fonction rend impossible aux autres de la deviner, alors c’est peut-être une conception ratée. Pour MySQL, tant que votre niveau d'anglais est légèrement meilleur, vous pouvez facilement réfléchir à la manière d'écrire une requête relationnelle. Par conséquent, la capacité à deviner dépend de votre niveau d’anglais, hahaha ! ! !

4. remplacer dans la syntaxe

replace into est une méthode d'insertion très grossière, mais il est également nécessaire de l'utiliser dans des scénarios appropriés. Par exemple, certaines données qui doivent être écrasées à tout moment doivent être remplacées, mais pour certaines tables à incrémentation automatique, vous. devrait essayer d'éviter de l'utiliser, car ce serait un gaspillage d'ID, et il n'est peut-être pas nécessaire d'utiliser replace

5 insérer dans la syntaxe de mise à jour de la clé dumplicate

.

Cette méthode d'écriture est relativement douce, mais la vitesse est nettement plus lente. On dit que seul MySQL possède cette fonctionnalité. Si vous ne voulez pas vérifier si les données existent déjà avant de les insérer, c'est peut-être un bon choix !

6. expliquer la syntaxe

C'est un moyen efficace de vérifier l'effet de la requête. En fait, j'utilise rarement cette fonction, mais si un développeur l'utilise souvent. , alors, je crois qu’il doit être une personne formidable. Grâce à cette commande, vous pouvez déterminer si la déclaration que vous avez écrite est optimisée et, sinon, quelle est la direction. Il faut dire que plus vous l’utilisez, plus vous connaîtrez les résultats, alors utilisez-le simplement davantage !

7. Longueur de l'index

La longueur maximale de l'index de myisam est de 1000 octets et la longueur maximale de l'index d'innodb est de 767 octets ! Soyez prudent lorsque vous l'utilisez. S'il dépasse la plage, il dépassera les attentes !

8. Copie de la bibliothèque

1) Données directement la commande de sauvegarde et de récupération de la base de données fournie avec MySQL

2) Copiez directement les fichiers vers ; le serveur de destination (Faites attention au problème d'occupation du processus) ;

3) Utilisez des outils de synchronisation ; Je pense personnellement que la deuxième méthode est la plus simple !

9. Partitionnement

Pour certaines tables qui peuvent être très volumineuses, des opérations de partitionnement sont nécessaires. Si cela est nécessaire, vous devez en ajouter au moins une. au début de la partition, sinon la partition ne pourra pas être utilisée plus tard. (Du moins je le pense)

10. Requête lente

Requête lente, il s'agit d'un problème de surveillance des performances. Si les performances du serveur sont trop mauvaises, s'il y a un enregistrement d'une requête aussi lente lors du dépannage, le dépannage sera plus efficace !

11. binlog

binlog, cette fonction est généralement utilisée. Elle est très nécessaire pour la récupération de données, l'enregistrement des opérations de données, etc.!

12. Autres vues, procédures stockées, événements que vous devriez connaître...

Vues, ​​événements, etc., ce sont quelques applications avancées, j'en ai trouvé beaucoup projets Ce genre d'application n'existe pas du tout, et du moins les projets que j'ai rencontrés n'y participent quasiment jamais, ou s'ils le sont, c'est fait au hasard par d'autres ! Mais encore faut-il comprendre les fonctions avancées, qu’elles soient utiles ou non !

13. Les outils disponibles

phpMyAdmin, en tant que moyen distant et sûr d'exploiter la base de données, est toujours très bon, mais en tant qu'opération locale, c'est un peu maladroit ; sqlyog , bien que l'interface soit démodée, elle reste relativement pratique ; navicat est plus professionnel, mais il faut s'adapter à ses différentes formes d'expression en ligne de commande, je pense que personne n'utilisera directement la ligne de commande pour les opérations ; , mais la ligne de commande est fondamentale !

Il y a beaucoup de choses qui doivent être approfondies. Si vous en avez le temps et les capacités, vous devriez vous plonger dans le code source !

Ce qui précède est le contenu de MySQL qui est souvent mal compris par nous. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn