MySQL默认数据库大盘点
mysql数据库默认有哪些库

首页 2025-07-11 20:43:15



MySQL数据库默认库详解 MySQL作为一种广泛使用的开源关系型数据库管理系统,为开发者和管理员提供了丰富的功能和工具,以高效地创建、管理和操作数据库

    在MySQL的安装和初始化过程中,系统会自动创建几个核心数据库,这些数据库被称为默认数据库

    了解这些默认数据库及其功能对于有效管理和使用MySQL至关重要

    本文将深入探讨MySQL数据库默认包含的库,以及它们在数据库管理中的作用

     一、MySQL默认数据库概述 MySQL在初始化完成后,会默认创建四个核心系统库:`information_schema`、`performance_schema`、`mysql`和`sys`

    这些系统库存储了MySQL服务自身的信息,如用户信息、权限设置、库表结构以及性能数据等,对数据库管理员(DBA)的工作具有重大意义

     二、MySQL默认数据库详解 1.`information_schema` `information_schema`是一个元数据数据库,它包含了关于所有其他数据库的信息

    这个数据库提供了关于数据库、表、列、索引、视图、存储过程、函数等几乎所有数据库对象的描述信息

    通过查询`information_schema`中的表,用户可以获取数据库的全面视图,这对于数据库管理、优化和问题诊断至关重要

     例如,要统计MySQL实例下每个库中所有表的表名以及个数,可以使用以下SQL语句: sql SELECT table_schema, COUNT(table_name), GROUP_CONCAT(table_name) FROM`information_schema.tables` GROUP BY table_schema; 2.`performance_schema` `performance_schema`用于收集数据库服务器性能数据,以便进行问题分析

    它记录了各种性能事件,如SQL语句的执行次数、执行时间、锁等待情况等

    这些信息对于识别性能瓶颈、优化查询和调优数据库配置非常有用

     由于`performance_schema`中的信息较为复杂,MySQL官方特意简化了对它的查询,形成了一个名为`sys`的数据库

     3.`sys` `sys`数据库的所有数据都来源于`performance_schema`,但它通过创建一系列简化的视图,使得查询性能数据变得更加直观和快捷

    `sys`库被称为MySQL的数据字典,存放了所有的元数据信息,包括数据库、表、索引的详细信息,以及会话和事务的信息

    通过`sys`库,用户可以快速了解数据库的运行状态,进行性能调优和数据资产管理

     例如,要查看当前正在运行的SQL语句,可以使用以下SQL语句: sql SELECT conn_id, USER, current_statement, last_statement FROM sys.session; 4.`mysql` `mysql`数据库是MySQL系统自身的核心数据库,用于存储系统的元数据和管理用户权限

    它包含了多个系统表,这些表存储了关于数据库用户、权限、日志和其他系统信息的元数据

    通过这些系统表,MySQL可以有效地管理和控制用户对数据库的访问和操作

     `mysql`数据库中的一些关键表包括: -`user`表:存储了数据库用户的全局权限信息

     -`db`表:存储了库级别的权限信息

     -`tables_priv`表:存储了表级别的权限信息

     -`columns_priv`表:存储了列级别的权限信息

     -`procs_priv`表:存储了存储过程和函数的权限信息

     -`proxies_priv`表:存储了代理用户的权限信息

     -`event`表:存储了事件与任务调度的信息

     -`gtid`表:与GTID主从复制有关的信息

     -`innodb_index_stats`和`innodb_table_stats`表:存储了InnoDB索引和表的统计信息

     -`plugin`表:存储了数据库插件的信息

     这些系统表是MySQL权限管理和安全控制的基础,通过它们,DBA可以灵活地配置用户权限,确保数据库的安全性和数据的完整性

     三、MySQL默认数据库的实际运用 了解MySQL默认数据库的结构和功能后,我们可以利用它们来进行一系列数据库管理和优化操作

    以下是一些实际运用案例: 1.统计数据库占用空间:通过查询`information_schema.TABLES`表,可以统计出MySQL实例下每个库占用空间的总大小,并以MB为单位显示

    这对于数据库容量规划和存储优化非常重要

     sql SELECT table_schema, SUM(AVG_ROW_LENGTHTABLE_ROWS+INDEX_LENGTH)/1024/1024 FROM`information_schema.TABLES` GROUP BY table_schema; 2.查找非InnoDB表:通过查询`information_schema.tables`表,可以找出MySQL实例下所有非InnoDB引擎的表

    这对于数据库迁移、升级和性能优化很有帮助

     sql SELECT table_schema, table_name FROM information_schema.tables WHERE ENGINE!= InnoDB AND table_schema NOT IN(sys, performance_schema, information_schema, mysql); 3.用户权限管理:通过查询和修改mysql数据库中的系统表,可以灵活地配置和管理数据库用户的权限

    这对于确保数据库的安全性和数据的完整性至关重要

     4.性能调优:通过查询`performance_schema`和`sys`数据库中的表,可以收集和分析数据库的性能数据,识别性能瓶颈,优化查询和调优数据库配置

    这对于提高数据库的响应速度和吞吐量非常重要

     5.数据资产管理:通过查询`information_schema`和`sys`数据库中的表,可以进行数据资产统计,了解有多少个库、多少表、占用了多大的硬盘空间等信息

    这对于数据库容量规划和数据管理很有帮助

     四、总结 MySQL的默认数据库是数据库管理和优化的基础

    了解这些数据库的结构和功能,以及如何利用它们进行数据库管理和优化操作,对于提高数据库的性能、安全性和可维护性具有重要意义

    作为数据库管理员或开

MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道