inforrmation_schema.tables
元数据?
-------> "基表"(无法直接查询和修改)
-------> DDL 进行源数据修改
-------> show ,desc(show),information_schema(全局类的统计和)
use information_schema
desc tables;
TABLE_SCHEMA -----> 表所在的库
TABLE_NAME -----> 表名
ENGINE -----> 引擎
TABLE_ROWS -----> 表的行数
AVG_ROW_LENGTH -----> 表中行的平均行(字节)
INDEX_LENGTH -----> 索引的占用空间大小(字节)
-- 统计每个库的真实数据量
SELECT
table_schema,
COUNT( table_name ),
SUM(AVG_ROW_LENGTH*TABLE_ROWS+INDEX_LENGTH)/1024/1024 AS ToTAL_MB
FROM information_schema.TABLES
GROUP BY table_schema;
-- 整个数据库真实数据量
SELECT
SUM(AVG_ROW_LENGTH*TABLE_ROWS+INDEX_LENGTH)/1024/1024 AS total_mb
FROM information_schema.`TABLES`
-- GROUP BY table_schema;
-- MySQL数据库单表备份
SELECT CONCAT("mysqldump -uroot -p123 ",table_schema," ",table_name," >/tmp/",table_schema,"_",table_name,".sql")
FROM information_schema.tables
WHERE table_schema NOT IN('sys','performance','information_schema')
INTO OUTFILE '/tmp/bak.sh';
--把worid库下单表备份
select concat("alter table world.",table_name," discard tablespace;")
FROM information_schema.tables
where table_schema='world';
show 语句应用
show databases; 查看所有数据库名
show tables; 查看当前库下的表名
show tables from world; 查看world数据库下的表名
show create database 查看建库语句
show create table 查看建表语句
show grants for root@'localhost' 查看用户权限信息
show charset 查看所有的字符集
show collation 查看校对规则
show full processlist 查看数据库连接情况
show status 查看数据库的整体状态
show status like '%lock%' 模糊查看数据库的整体状态
show variables 查看数据库所有变量情况
show variables like '%innodb%' 查看数据库所有变量情况
show engines 查看所有支持存储引擎
show engine innodb status 查看所有innodb存储引擎状态情况
show binary logs 查看二进制日志情况
show binlog events in 查看二进制日志事件
show relaylog events in 查看relay日志事件
show slave status 查看从库状态
show master status 查看数据库binlog位置信息
索引
1. 索引作用
提供了类似于书中目录的作用,目的是为了优化查询
2. 索引的种类(算法)
B树索引
Hash索引
R树
Full text
GIS
3.B树算法普及
B-tree
B+tree
B*tree
4.在功能上的分类
#辅助索引(S)怎么构建B树结构的?
(1)辅助索引是基于表的列进行生成的
(2)取出索引列的所有值(取出所有键值)
(3)进行所有键值的排序
(4)将所有的键值按顺序落到BTree索引的叶子节点上
(5)进而生成枝节点和根节点
(6)叶子节点除了存储值之外,还存储了相邻叶子节点的指针,另外还会保存指向原表的指针
#聚集索引(C)怎么构建B树结构的?
(1)建表时有主键列(ID)
(2)表中数据进行存储时,会按照ID列的顺序,有序的存储一行一行的数据到数据页上(这个动作叫做聚集索引组织表)
(3)表的数据页被作为聚集索引的叶子节点
(4)把叶子节点的主键值生成上层枝节点和根节点。
#聚集索引和辅助索引构成区别总结
聚集索引只能有一个,非空唯一,一般时主键
辅助索引,可以有多个,时配合聚集索引使用的
聚集索引叶子节点,就是磁盘的数据行存储的数据页
MySQL是根据聚集索引,组织存储数据,数据存储时就是按照聚集索引的顺序进行存储数据
辅助索引,只会提取索引键值,进行自动排序生成B树结构
#辅助索引细分
单列的辅助索引
联合多列辅助索引(覆盖索引)
唯一索引
#关于索引树的高度受什么影响?
(1)数据行多, 分表
(2)索引列的字符长度, 前缀索引
(3)数据类型 char varchar , 表设计
(4)enum 优化索引高度 ,能用则用