MySQL架构和存储引擎、系统默认数据库介绍「建议收藏」

MySQL架构和存储引擎、系统默认数据库介绍「建议收藏」MySQL架构: 采用C/S架构,即客户端/服务器。客户端和服务器区分开,通过客户端发送请求来和服务器交互。 过程: 用户通过开发的应用程序来访问数据库(C/S),应用程序通过连接器(connecte

MySQL架构和存储引擎、系统默认数据库介绍

MySQL架构:

采用C/S架构,即客户端/服务器。客户端和服务器区分开,通过客户端发送请求来和服务器交互。

过程:
  1. 用户通过开发的应用程序来访问数据库(C/S),应用程序通过连接器(connecter)连接到数据库。

  2. 连接器包含了各种开发语言的接口,连接完成后MySQL会分配一个线程提供服务,执行对应操作的时候就会调用MySQL定义好的接口组件来接收请求。

  3. 把sql语句解析完成后,结合当前数据库状态来优化对应操作。
    mysql利用caches和buffer来提高系统系统性能。

  4. 数据读出和写入的时候会通过存储引擎来选择数据的相关操作,最后写入磁盘或内存。

目前主流的存储引擎:

存储引擎:MySQL管理数据文件的一种技术。

  • myisam

  • innodb

查看系统当前支持的存储引擎:show engines;
myisam和innodb的区别:
  1. 最大支持数据量:myisam>innodb

  2. 事务:myisam不支持,

  3. 锁:innodb支持行级锁,myisam只支持表锁(整张表加锁)

  4. MVCC(多版本并发控制):允许多用户进行访问(并发),myisam不支持,

  5. 聚集索引:innodb支持

  6. 缓存:innodb支持

  7. 外键:myisam不支持

myisam和innodb特点:
  • myisam特点:myisam功能简单,所以数据访问快

  • innodb:功能丰富,效率没有myisam高

mysql5.5版本以前使用的是myisam作为默认存储引擎,5.5以后使用的默认存储引擎就是innodb了。
myisam和innodb对应的数据库文件:
myisam:
  • .frm文件:负责表格式定义
  • .MYD文件:存放表的数据文件
  • .MYI:存放表的索引文件
innodb:
  • .frm:存放表的定义文件
  • idb:存放表的索引和数据文件
MySQL5.5以前:
早期innodb类型的数据表只有一个frm文件,而数据文件只有一个,这个数据文件存放了innodb类型的所有表的数据。

修改方法: 启用:innodb_file_per_table=ON (MariaDB 5.5以后版是默认值)
mysql> select @@innodb_file_per_table;
+-------------------------+
| @@innodb_file_per_table |
+-------------------------+
|                       1 |
+-------------------------+
1 row in set (0.00 sec)

修改存储引擎的方法:

方法1:
vim /etc/my.cnf
[mysqld]
default_storage_engine= InnoDB

方法2:
CREATE TABLE tb_name(... ) ENGINE=InnoDB;
ALTER TABLE tb_name ENGINE=InnoDB;
查看指定表的属性信息:
  • show table status from tb_nameG

  • show table status like “tb_name%”

特殊存储引擎:
  • Performance_Schema:系统自带的数据库Performance_Schema使用的存储引擎

  • Memory:数据存放在内存中,主要存放一些临时数据。information_schema这个系统数据库就是使用的memory存储引擎。

系统数据库:四个
  • mysql:mysql的核心数据库,主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息

  • Performance_Schema:MySQL 5.5开始新增的数据库,用于收集数据库服务器性能参数

  • information_schema:MySQL 5.0之后产生的,一个虚拟数据库,物理上并不存在information_schema数据库,存放MySQL的元数据信息。

  • sys 数据库:MySQL5.7之后新增加的数据库,库中所有数据源来自performance_schema。目标是把performance_schema的把复杂度降低,让DBA能更好的阅读这个库里的内容

MySQL的配置和状态
  • 服务器选项:在MySQL运行的时候命令行中添加也可以在配置文件中添加

  • MySQL服务器系统变量:可以在环境中通过set命令修改

  • 系统的状态变量:记录数据库系统的当前状态

MySQL服务器选项:
设置服务器选项方法:
  • 命令行设置
shell> /usr/bin/mysqld_safe --skip-name-resolve=1
shell> /usr/libexec/mysqld --basedir=/
  • 配置文件设置
vim /etc/my.cnf
[mysqld]
skip_name_resolve=1
skip-grant-tables
查看MySQL支持的选项:
[root@CentOS8 ~]#  /usr/libexec/mysqld --verbose --help
MySQL服务器系统变量:

服务器系统变量:可以分全局和会话两种

查看系统中的变量:
SHOW GLOBAL VARIABLES; #只查看global变量
SHOW [SESSION] VARIABLES;#查看所有变量(包括global和session)

#查看指定的系统变量
SHOW VARIABLES LIKE "VAR_NAME";
SELECT @@VAR_NAME;

修改服务器变量的值:

修改全局变量:仅对修改后新创建的会话有效;对已经建立的会话无效
SET GLOBAL system_var_name=value;
SET @@global.system_var_name=value;

修改会话变量:
SET [SESSION] system_var_name=value;
SET @@[session.]system_var_name=value;

#查看set命令用法:help set
MySQL系统的状态变量:
  • 服务器状态变量:分全局和会话两种

  • 状态变量(只读):用于保存mysqld运行中的统计数据的变量,不可更改

服务器的状态变量查看:
mysql> show statusG
区分服务器的选项和变量:

通过官方文档查看。

  • https://dev.mysql.com/doc/refman/8.0/en/server-option-variable-reference.html

  • https://dev.mysql.com/doc/refman/5.7/en/server-option-variable-reference.html

  • https://mariadb.com/kb/en/library/full-list-of-mariadb-options-system-and-status-variables/

原文地址:https://www.cnblogs.com/heyongshen/archive/2022/09/12/16685246.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/4784.html

(0)
上一篇 2023-06-05 10:30
下一篇 2023-06-05

相关推荐

  • 安装MySQL数据库的简单过程

    安装MySQL数据库的简单过程点击下载MySQL 5.7 安装包 本例下载的是mysql-installer-community-5.7.17.0.msi MySQL下载完成后找到下载到本地的文件,并且解压缩包,简单安装步骤如下…

    2023-02-06
    157
  • 存储体系

    存储体系存储体系 计算机存储体系分为多级,常见的有小到cpu内部的寄存器、cache,大到内存、磁盘、磁带以及各式可插拔的usb设备等都属于存储体系的一员,一个常见的直观的图如下: 从最顶端的cpu开始一直到

    2023-04-16
    433
  • spark conf、config配置项总结[通俗易懂]

    spark conf、config配置项总结[通俗易懂]1、structured-streaming的state 配置项总结 Config Name Description Default Value spark.sql.streaming.stateSt

    2023-04-30
    139
  • Plink v0.1.0 发布——基于Flink的流处理平台[通俗易懂]

    Plink v0.1.0 发布——基于Flink的流处理平台[通俗易懂]Plink是一个基于Flink的流处理平台,旨在基于 [Apache Flink]封装构建上层平台。 提供常见的作业管理功能。如作业的创建,删除,编辑,更新,保存,启动,停止,重启,管理,多作业模板配

    2023-03-17
    150
  • [MySQL] mysql中bitmap的简单运用

    [MySQL] mysql中bitmap的简单运用bitmap就是在一个二进制的数据中,每一个位代表一定的含义,这样最终只需要存一个整型数据,就可以解释出多个含义.业务中有一个字段专门用来存储用户对某些功能的开启和关闭,如果是传统的思维,肯定是建一个

    2022-12-22
    169
  • Ubuntu20 安装mysql8并开启远程访问

    Ubuntu20 安装mysql8并开启远程访问ubuntu20.04使用命令安装数据库默认就是8.x版本的 1.安装 sudo apt-get install mysql-server mysql-client 2.修改配置文件 sudo vi…

    2023-04-12
    158
  • 如何用Python判断一个整数

    如何用Python判断一个整数Python是一种高级编程语言,是当今世界上应用最广泛的编程语言之一,其简洁、易学的语法和强大的功能被广泛使用。Python不仅可以处理复杂的科学计算问题,还可以处理各种数据结构和算法。本文将重点介绍如何用Python判断一个整数。

    2024-07-20
    40
  • SQL语言概况(4.1)「建议收藏」

    SQL语言概况(4.1)「建议收藏」SQL语言概况(4.1) [toc] 参考资料: 数据库原理及设计(第3版) 配套数据库为:microsoft sql server 参照ANSI SQL 92标准 4.1 SQL语言概况 4.1.1

    2023-02-21
    145

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注