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

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

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

  • myisam
  • innodb

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

  • innodb:功能丰富,效率没有myisam高
mysql5.5版本以前使用的是myisam作为默认存储引擎,5.5以后使用的默认存储引擎就是innodb了。
  • .frm文件:负责表格式定义
  • .MYD文件:存放表的数据文件
  • .MYI:存放表的索引文件

  • .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_name\G
  • 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服务器系统变量:可以在环境中通过set命令修改
  • 系统的状态变量:记录数据库系统的当前状态

  • 命令行设置

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
[root@CentOS8 ~]#  /usr/libexec/mysqld --verbose --help

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

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
  • 服务器状态变量:分全局和会话两种
  • 状态变量(只读):用于保存mysqld运行中的统计数据的变量,不可更改
mysql> show status\G

通过官方文档查看。

Original: https://www.cnblogs.com/heyongshen/p/16685246.html
Author: 背对背依靠
Title: MySQL架构和存储引擎、系统默认数据库介绍

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578598/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • IDEA快捷键总结

    一、关于IDEA工具的快捷键 1.1、字体设置  file –> settings –> 输入font –> 设置字体样式以及字号大小​1.1、快速生成ma…

    Linux 2023年6月7日
    070
  • Redis 内存淘汰策略

    实际上redis定义了【八种内存淘汰策略】来处理redis内存满的情况 noeviction:直接返回错误,不淘汰任何已经存在的redis键 allkeys-lru:所有的键使用l…

    Linux 2023年5月28日
    085
  • [20220304]使用gdb完成各种进制转换.txt

    [20220304]使用gdb完成各种进制转换.txt –//一般使用gdb调试跟踪程序,centos 7以上版本gdb支持管道,可以使用gdb p命令实现10,16进…

    Linux 2023年5月27日
    073
  • 分布式系统中数据存储方案实践

    数据膨胀的时候,必然放大细节。 一、背景简介 在项目研发的过程中,对于数据存储能力的依赖无处不在,项目初期,相比系统层面的组件选型与框架设计,由于数据体量不大,在存储管理方面通常容…

    Linux 2023年6月14日
    073
  • 面试连环炮系列(二十六):什么情况下JVM频繁发生full GC

    什么情况下JVM频繁发生full GC; 在实际项目什么代码导致full GC;线上怎么排查是哪个程序导致的ful GC 1. 什么情况下JVM频繁发生full GC?full g…

    Linux 2023年6月6日
    0106
  • Linux(Deepin)Qt引用ffmpeg的问题(: error: cannot find -l…)

    Linux(Deepin)Qt引用ffmpeg的问题 1、环境介绍 Deepin 20.4 Qt 5.15.1 2、问题描述 从git上找了一个项目打算在Linux练习,顺便熟悉L…

    Linux 2023年6月14日
    088
  • 微服务网关Gateway实践总结

    有多少请求,被网关截胡; 一、Gateway简介 微服务架构中,网关服务通常提供动态路由,以及流量控制与请求识别等核心能力,在之前的篇幅中有说过Zuul组件的使用流程,但是当下Ga…

    Linux 2023年6月14日
    083
  • openssh升级

    bash;gutter:false; ssh -V</p> <p>cp -a /etc/ssh/sshd_config /etc/ssh/sshd_conf…

    Linux 2023年6月7日
    074
  • 微服务,【容器亚健康状态】问题,研究和解决

    —【前言】— 我问:”程序有『亚健康状态』吗?” 一个正常的人,应该这样回答:”什么?程序,亚健康。。。?你神经病吧?我…

    Linux 2023年6月14日
    079
  • 百钱买百鸡问题

    百钱买百鸡问题 题目:公元前5世纪末,中国古代数学家张丘建在他的《算经》中提出了著名的 “百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,…

    Linux 2023年6月7日
    090
  • webshell 免杀

    https://xz.aliyun.com/t/11391 Original: https://www.cnblogs.com/cute/p/16356651.htmlAuthor…

    Linux 2023年5月28日
    092
  • Docker镜像构建之docker commit

    我们可以通过公共仓库拉取形象,但有时公共仓库拉取的形象不符合我们的需求。虽然我们已经从繁琐的部署工作中解脱出来,但在实际开发中,我们可能希望镜像包含整个项目的完整环境,将打包的完整…

    Linux 2023年5月27日
    083
  • 微服务与领域驱动设计,架构实践总结

    怎样的架构才能配得上造到飞起的变化? 一、软件复杂性 1、复杂原因 如果软件系统存在持续的迭代周期,那么其中业务、技术、架构的复杂性都会直线拉升,其相应的开发难度也会提高,可以用一…

    Linux 2023年6月14日
    051
  • [python][flask] Flask 图片上传与下载例子(支持漂亮的拖拽上传)

    1、效果预览 2、新增逻辑概览 3、tuchuang.py 逻辑介绍 3.1 图片上传 3.2 图片合法检查 3.3 图片下载 4、init.py 逻辑介绍 5、upload.ht…

    Linux 2023年6月8日
    0103
  • redis缓存数据库简单使用

    1、在Linux上安装与配置 -最新:7.0 -最稳定版本:6.x-讲课:5.x-企业里:3.x,4.x,5.x 6.x(极少数公司在用)-windows:3.x,5.x 1 速度…

    Linux 2023年6月14日
    076
  • centos 更换yum 源

    1.如果系统有wget : 备份yum repo cd /etc/yum.repos.d for i in $(ls);do mv ${i}{,.bak};done for i i…

    Linux 2023年6月13日
    075
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球