Maison  >  Article  >  base de données  >  Introduction à l'architecture des connaissances avancées MySQL

Introduction à l'architecture des connaissances avancées MySQL

coldplay.xixi
coldplay.xixiavant
2021-01-04 09:26:402397parcourir

Tutoriel vidéo MySQLLa colonne présente la structure des connaissances avancées MySQL

Introduction à l'architecture des connaissances avancées MySQL

Recommandé (gratuit) : Tutoriel vidéo MySQL

1 Introduction à MySQL

Vue d'ensemble
  • MySQL est un système de gestion de bases de données relationnelles développé par le suédois MySQL AB et appartient actuellement à Oracle.

  • MySQL est un système de gestion de base de données relationnelle qui conserve les données dans différentes tables au lieu de placer toutes les données dans un seul grand entrepôt, ce qui augmente la vitesse et améliore la flexibilité.

  • Mysql est open source, vous n'avez donc pas besoin de payer de supplément.

  • Mysql prend en charge les grandes bases de données. Peut gérer de grandes bases de données contenant des dizaines de millions d’enregistrements.

  • MySQL utilise le formulaire standard du langage de données SQL.

  • Mysql peut être utilisé sur plusieurs systèmes et prend en charge plusieurs langues. Ces langages de programmation incluent C, C++, Python, Java, Perl, PHP, Eiffel, Ruby et Tcl, etc.

  • Mysql prend bien en charge PHP, qui est actuellement le langage de développement Web le plus populaire.

  • MySQL prend en charge de grandes bases de données et entrepôts de données avec 50 millions d'enregistrements. Le fichier de table système 32 bits peut prendre en charge un maximum de 4 Go, et le système 64 bits prend en charge un fichier de table maximum de. 8 To.

  • Mysql peut être personnalisé et adopte le protocole GPL. Vous pouvez modifier le code source pour développer votre propre système Mysql.

MySQL avancé implique des connaissances
    noyau MySQL
  • Lion de siège d'optimisation SQL
  • Optimisation du serveur MySQL
  • Divers paramètres constants de paramètres
  • Optimisation des instructions de requête
  • Réplication maître-esclave
  • Mise à niveau logicielle et matérielle
  • Sauvegarde de récupération après sinistre
  • Programmation SQL
  • L'optimisation complète de MySQL nécessite une base profonde. Les grandes entreprises ont même des administrateurs de base de données dédiés pour écrire ce qui précède

2. Installation de la version MySQL Linux

Cette fois, MySQL 5.5 est installé et l'environnement d'installation est CentOS 6.5
  • Adresse de téléchargement de la version Adresse de téléchargement du site officiel
  • Télécharger
      MySQL-Client
    • et MySQL-Serverhttp://downloads.skysql.com/archives/mysql-5.5/MySQL-server- 5.5 .16-1.rhel4.i386.rpm
    • http://downloads.skysql.com/archives/mysql-5.5/MySQL-client-5.5.16-1.rhel4.i386.rpm
    • http://downloads.skysql.com/archives/mysql-5.5/MySQL-devel-5.5.16-1.rhel4.i386.rpm
    Vérifiez si le système actuel MySQL installé
  • Commande de requête :
    • rpm -qa|grep -i mysql Commande de suppression :
    • rpm -e --nodeps RPM包全名
    Installer le serveur mysql (
  • Notez les conseils
  • )

    Introduction à larchitecture des connaissances avancées MySQLIntroduction à l'architecture des connaissances avancées MySQL

      Définir l'invite de mot de passe
    Installer le client MySQL
  • Afficher l'utilisateur MySQL et le groupe MySQL créés lors de l'installation de MySQL
    • # cat /etc/passwd | grep mysql
    • # cat /etc/group | grep mysql
    Démarrer + arrêter le service MySQL
  • Afficher l'état de démarrage et d'arrêt de MySQL :
    • # ps -ef | grep mysqlDémarrer et arrêter les opérations :
      • # /etc/init.d/mysql start
      • # /etc/init.d/mysql stop ou
      • #service mysql start
      • #service mysql stop
      Configurer le service de démarrage automatique MySQL
      • Configurer le service de démarrage automatique startup
      • #chkconfig mysql on
      • Vérifier si le démarrage automatique est configuré
      • # chkconfig --list | grep mysql
      Modifier l'emplacement du fichier de configuration
    • Copiez la
        version 5.5 actuelle
      •  : cp /usr/share/mysql/my-huge.cnf /etc/my.cnf
      • Version 5.6
      • cp /usr/share/mysql/my-default.cnf /etc/my.cnf
      Modifier le jeu de caractères et le chemin de stockage des données
    • Afficher le jeu de caractères
        • show variables like 'character%';
        • show variables like '%char%';

        • Introduction à larchitecture des connaissances avancées MySQL

Introduction à l'architecture des connaissances avancées MySQL

    Jeu de personnages
    • Par défaut, le client et le serveur utilisent latin1, donc les caractères seront tronqués.
    • Modifiez le jeu de caractères et modifiez le fichier de configuration précédemment copié. (Code de suivi détaillé)
    • Emplacement d'installation MySQL
      • Afficher le répertoire d'installation sous Linuxps -ef|grep mysql
路径 解释 备注
/var/lib/mysql/ mysql数据库文件的存放路径 /var/lib/mysql/atguigu.cloud.pid
/usr/share/mysql 配置文件目录 mysql.server命令及配置文件
/usr/bin 相关命令目录 mysqladmin mysqldump等命令
/etc/init.d/mysql 启停相关脚本

Introduction à larchitecture des connaissances avancées MySQL

Emplacement d'installation de MySQL

[client]
#password = your_password
port = 3306
socket = /var/lib/mysql/mysql.sock

# 这一行需要设置字符集
default-character-set=utf8
 
# The MySQL server
[mysqld]
port = 3306

# 还有这三行
character_set_server=utf8
character_set_client=utf8
collation-server=utf8_general_ci

socket = /var/lib/mysql/mysql.sock
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
 
[mysql]
no-auto-rehash
# 还有这一行
default-character-set=utf8

3. Fichier de configuration MySQL

Fichier de configuration principal
  • Journal binaire
    • Réplication maître-esclave

Introduction à larchitecture des connaissances avancées MySQL

  • Journal des erreurs journal-erreur
    • est désactivé par défaut, enregistrant les avertissements et messages d'erreur sérieux, des informations détaillées sur chaque démarrage et arrêt, etc.
  • Journal du journal des requêtes
    • est désactivé par défaut et enregistre les instructions SQL des requêtes. S'il est activé, cela réduira les performances globales de MySQL, car l'enregistrement des journaux. consomme également des ressources système
  • Fichiers de données
    • Deux systèmes
      • fenêtres
        • Vous pouvez choisir de nombreuses bibliothèques dans D:devSoftMySQLServer5. 5data directory
      • Linux :
        • Chemin par défaut#cd /var/lib/mysql/
        • Regardez toutes les bibliothèques du système actuel puis entrez#ls -1F | grep ^d
    • fichier frm : stocke la structure de la table
    • **fichier myd : ** stocke les données de la table
    • **fichier myi : ** index de la table des magasins
  • Comment configurer
    • Windows : fichier my.ini
    • Linux : /etc/my Fichier .cnf

4. Introduction à l'architecture logique Mysql

Aperçu
  • Par rapport à d'autres bases de données, MySQL est un peu différent. Son architecture peut être utilisée dans de nombreuses applications différentes dans la scène et fonctionne bien. Principalement reflétée dans l'architecture du moteur de stockage, l'architecture du moteur de stockage plug-in sépare le traitement des requêtes des autres tâches système ainsi que le stockage et l'extraction des données . Cette architecture permet la sélection de moteurs de stockage appropriés en fonction des besoins métier et des besoins réels.

    Introduction à larchitecture des connaissances avancées MySQL

  • 1. Couche de connexion
    • La couche supérieure comprend certains clients et services de connexion, y compris la communication par sock locale et les grandes La plupart des communications similaires à TCP/IP sont mises en œuvre sur la base d'outils client/serveur. Il complète principalement certains traitements de connexion, authentification d'autorisation et solutions de sécurité associées. Le concept de pool de threads est introduit sur cette couche pour fournir des threads aux clients qui accèdent en toute sécurité via l'authentification. Des liens sécurisés basés sur SSL peuvent également être implémentés sur cette couche. Le serveur vérifie également les autorisations d'exploitation dont il dispose pour chaque client qui y accède en toute sécurité.
    • 2. Couche de service
      • L'architecture de la deuxième couche complète principalement la plupart des fonctions de service de base, telles que l'interface SQL, et complète les requêtes mises en cache. , Analyse SQL, optimisation et exécution de certaines fonctions intégrées. Toutes les fonctions du moteur de stockage croisé sont également implémentées dans cette couche, telles que les procédures, les fonctions, etc. Au niveau de cette couche, le serveur analysera la requête et créera l'arbre d'analyse interne correspondant, et terminera l'optimisation correspondante telle que déterminer l'ordre de la table de requête, s'il faut utiliser des index, etc., et enfin générer l'opération d'exécution correspondante. S'il s'agit d'une instruction select, le serveur interrogera également le cache interne. Si l'espace de cache est suffisamment grand, cela peut améliorer considérablement les performances du système dans un environnement gérant un grand nombre d'opérations de lecture.
    • 3. Couche moteur
      • Couche moteur de stockage Le moteur de stockage est réellement responsable du stockage et de l'extraction des données dans MySQL. communique avec le serveur via l'API Communiquer avec le moteur de stockage. Différents moteurs de stockage ont des fonctions différentes, nous pouvons donc choisir en fonction de nos besoins réels. Nous présenterons MyISAM et InnoDB plus tard
    • 4 Couche de stockage
      • La couche de stockage de données stocke principalement les données dans un système de fichiers fonctionnant sur un nu. périphérique ci-dessus et terminez l’interaction avec le moteur de stockage.
Description de la requête
  • Tout d'abord, le processus de requête mysql est à peu près :
    • mysql client Établissez une connexion avec le serveur mysql via le protocole, envoyez l'instruction de requête, vérifiez d'abord le cache de requête, s'il y a un succès, renvoyez le résultat directement, sinon effectuez l'analyse de l'instruction
    • Il y a une série de prétraitements , comme vérifier si l'instruction est écrite correctement, puis optimiser la requête (par exemple s'il faut utiliser l'analyse d'index, terminer plus tôt si la condition est impossible), générer un plan de requête, puis démarrer le moteur de requête, commencer à exécuter la requête , appelez l'API depuis le moteur de stockage sous-jacent pour obtenir des données, et enfin les renvoyer au client. Comment stocker des données et comment récupérer des données sont tous liés au moteur de stockage.
    • Ensuite, mysql utilise l'index BTREE par défaut, et une direction générale est que peu importe la façon dont vous lancez SQL, du moins pour l'instant, mysql n'utilise qu'au plus un index dans la table.

5. Moteur de stockage Mysql

  • Afficher la commande
    • Afficher le moteur de stockage fourni par MySQL actuel
      • mysql> show engines;
    • Regardez votre moteur de stockage MySQL par défaut actuel :
      • show variables like '%storage_engine%';
  • Moteur de stockage par défaut

    Comparaison de deux moteurs :
  • MyISAM et InnoDB

    Introduction à l'architecture des connaissances avancées MySQLIntroduction à larchitecture des connaissances avancées MySQL

  • Lequel dois-je utiliser pour Alibaba ou Taobao ?
    • Percona a amélioré le serveur de base de données MySQL et a considérablement amélioré les fonctionnalités et les performances par rapport à MySQL. Cette version améliore les performances d'InnoDB dans des conditions de charge élevée, fournit aux administrateurs de base de données des outils de diagnostic des performances très utiles et dispose de plus de paramètres et de commandes pour contrôler le comportement du serveur.
    • La société a créé un nouveau moteur de stockage appelé xtradb qui peut remplacer complètement innodb et faire mieux en termes de performances et de concurrence,
    • La plupart des bases de données MySQL d'Alibaba utilisent en fait le prototype de percona avec des modifications

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer