首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
1.1 数据库系统概述
1.1.1 数据库技术的发展
1.1.2 数据库系统的组成
1.2 数据模型
1.2.1 数据模型的概念
1.2.2 常见的数据模型
1.2.3 关系数据库的规范化
1.2.4 关系数据库的设计原则
1.2.5 实体与关系
1.3 数据库的体系结构
1.3.1 数据库三级模式结构
1.3.2 三级模式之间的映射
2.1 了解MySQL
2.1.1 MySQL数据库的概念
2.1.2 MySQL的优势
2.1.3 MySQL的发展史
2.2 MySQL 8.0的新特性
2.3 MySQL的应用环境
2.4 MySQL服务器的安装和配置
2.4.1 MySQL服务器安装包的下载
2.4.2 MySQL服务器的安装
2.4.3 启动、连接、断开和停止MySQL服务器
2.4.4 打开MySQL 8.0 Command Line Client
2.5 如何学好MySQL
第3章 使用MySQL图形化管理工具
3.1 安装phpMyAdmin图形化管理工具
3.1.1 phpMyAdmin图形化管理工具简介
3.1.2 下载phpstudy集成开发环境
3.1.3 下载phpMyAdmin
3.1.4 打开phpMyAdmin
3.2 数据库操作管理
3.2.1 创建数据库
3.2.2 修改和删除数据库
3.3 管理数据表
3.3.1 创建数据表
3.3.2 修改数据表
3.3.3 删除数据表
3.4 管理数据记录
3.4.1 使用SQL语句插入数据
3.4.2 使用SQL语句修改数据
3.4.3 使用SQL语句查询数据
3.4.4 使用SQL语句删除数据
3.4.5 通过form表单插入数据
3.4.6 浏览数据
3.4.7 搜索数据
3.5 导入/导出数据
3.5.1 导出MySQL数据库脚本
3.5.2 导入MySQL数据库脚本
3.6 设置编码格式
3.7 添加服务器新用户
3.8 重置MySQL服务器登录密码
4.1 认识数据库
4.1.1 数据库基本概念
4.1.2 数据库常用对象
4.1.3 系统数据库
4.2 创建数据库
4.2.1 使用CREATE DATABASE语句创建数据库
4.2.2 使用CREATE SCHEMA语句创建数据库
4.2.3 创建指定字符集的数据库
4.2.4 创建数据库前判断是否存在同名数据库
4.3 查看数据库(SHOW命令)
4.4 选择数据库(USE命令)
4.5 修改数据库(ALTER命令)
4.6 删除数据库(DROP命令)
当前位置:
首页>>
技术小册>>
MySQL从入门到精通(一)
小册名称:MySQL从入门到精通(一)
### 4.1.3 系统数据库 在MySQL数据库中,系统数据库扮演着至关重要的角色,它们是MySQL服务器安装和运行时自动创建并维护的一系列特殊数据库,用于存储MySQL服务器的配置信息、权限数据、系统变量、性能监控数据等关键信息。了解并掌握这些系统数据库的结构和内容,对于MySQL的高级配置、优化、安全管理以及故障排除都至关重要。本章节将深入探讨MySQL中的几个核心系统数据库:`mysql`、`information_schema`、`performance_schema`,以及`sys`(在较新版本的MySQL中引入)。 #### 4.1.3.1 mysql数据库 `mysql`数据库是MySQL中最核心的系统数据库之一,它包含了MySQL服务器的用户权限信息、全局系统变量、存储过程和函数等。这个数据库对于数据库管理员来说是至关重要的,因为它直接关联到数据库的安全性、用户认证以及全局配置管理。 - **user表**:`user`表是`mysql`数据库中最关键的表之一,它存储了所有MySQL用户的账户信息,包括用户名、密码(通常是加密形式)、主机名、全局权限等。通过对`user`表的操作,可以实现用户的添加、删除、密码修改以及权限分配等。 - **db表**:`db`表用于存储数据库的访问权限,它定义了哪些用户可以从哪些主机访问哪些数据库,以及这些用户在这些数据库上拥有的权限。虽然随着MySQL版本的发展,这种权限管理方式逐渐被更细粒度的权限控制所取代,但了解`db`表的结构仍然有助于理解MySQL的权限体系。 - **tables_priv表**、**columns_priv表**:这两个表分别用于存储表级和列级的权限信息,使得数据库管理员可以实现对数据库对象(如表、列)的精细权限控制。 - **procs_priv表**:存储了存储过程和函数的权限信息,确保只有授权用户才能执行特定的存储过程或函数。 #### 4.1.3.2 information_schema数据库 `information_schema`数据库是MySQL提供的一个特殊的系统数据库,它包含了所有其他数据库(包括系统数据库和用户数据库)的元数据信息。这些信息对于数据库管理员、开发人员和数据分析师来说非常有用,因为它允许他们查询数据库的结构、表的信息、列的数据类型、索引、视图定义等,而无需直接访问每个数据库。 - **TABLES表**:`TABLES`表列出了所有数据库中的表信息,包括表名、所属数据库、表类型(如BASE TABLE、VIEW等)、行格式(如DYNAMIC、COMPACT等)等。 - **COLUMNS表**:`COLUMNS`表提供了每个表中列的信息,包括列名、数据类型、是否允许为空、默认值、字符集等。 - **STATISTICS表**:`STATISTICS`表包含了关于索引的信息,这对于理解表的查询性能、优化索引策略至关重要。 - **ROUTINES表**:`ROUTINES`表列出了所有的存储过程和函数,包括它们的定义、类型(是存储过程还是函数)、SQL模式等。 - **VIEWS表**:`VIEWS`表提供了数据库中所有视图的信息,包括视图定义、字符集和排序规则等。 `information_schema`数据库的使用极大地简化了数据库的元数据查询工作,使得数据库管理员和开发人员可以更加高效地管理和开发数据库应用。 #### 4.1.3.3 performance_schema数据库 `performance_schema`是MySQL 5.5版本引入的一个系统数据库,旨在提供对MySQL服务器性能监控的能力。它收集并存储了关于服务器执行过程中各种操作的详细数据,如语句执行、等待事件、锁竞争、I/O请求等,从而帮助数据库管理员和开发人员诊断性能瓶颈、优化查询和执行计划。 - **EVENTS_WAITS_HISTORY_LONG表**:该表记录了长时间等待事件的历史信息,对于分析长时间运行或锁等待问题非常有用。 - **THREADS表**:`THREADS`表提供了关于MySQL服务器中所有线程的信息,包括线程ID、用户、当前执行的SQL语句等,有助于理解服务器的工作负载和线程状态。 - **SETUP_INSTRUMENTS表**、**SETUP_CONSUMERS表**:这两个表允许用户配置`performance_schema`监控哪些事件以及如何将收集到的数据输出到不同的消费者(如表、文件等)。 `performance_schema`数据库提供了丰富的性能监控数据,但需要注意的是,由于它会增加额外的性能开销,因此在生产环境中使用时需要仔细配置和监控其影响。 #### 4.1.3.4 sys数据库 `sys`数据库是MySQL 5.7及以上版本中引入的一个可选的系统数据库,它建立在`performance_schema`和`information_schema`的基础上,通过提供一组预定义的视图和函数,简化了性能监控和诊断的过程。`sys`数据库的设计目的是让数据库管理员和开发人员能够更容易地理解和分析MySQL的性能数据,而无需深入了解`performance_schema`的复杂配置和细节。 - **x$host_summary表**:该视图提供了关于MySQL服务器中所有主机的性能摘要信息,包括查询执行时间、锁等待时间等。 - **x$schema_table_statistics表**:这个视图展示了每个表的索引使用情况,包括索引的访问频率、扫描行数等,有助于识别和优化索引策略。 - **x$statement_analysis表**:通过该视图,可以分析SQL语句的性能,包括执行时间、锁等待时间、I/O请求次数等,是SQL语句优化的重要工具。 `sys`数据库通过提供高级别的性能监控和诊断功能,极大地降低了MySQL性能优化的门槛,使得即使是经验较少的数据库管理员也能有效地进行性能调优工作。 ### 总结 `mysql`、`information_schema`、`performance_schema`以及`sys`(在较新版本中)是MySQL中最重要的系统数据库,它们分别承担着用户权限管理、元数据查询、性能监控和性能诊断等关键任务。深入理解这些系统数据库的结构和功能,对于提高MySQL数据库的管理水平、优化性能、确保安全具有重要意义。在实际应用中,建议数据库管理员和开发人员根据具体需求和MySQL版本,合理利用这些系统数据库提供的强大功能,以提升数据库的整体性能和可靠性。
上一篇:
4.1.2 数据库常用对象
下一篇:
4.2 创建数据库
该分类下的相关小册推荐:
MySQL 实战 45 讲
MySQL8.0入门与实践
MySQL从入门到精通(五)
SQL零基础到熟练应用(增删改查)
MySQL从入门到精通(二)
MySQL从入门到精通(四)
MySQL从入门到精通(三)
MySQL必会核心问题
细说MySQL(零基础到高级应用)