【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略


持续学习&持续更新中…

学习态度:守破离


【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略

  • 数据库调优的措施
    • 调优的目标
    • 如何定位调优问题
    • 调优的维度和步骤
  • 优化MySQL服务器
    • 优化服务器硬件
    • 优化MySQL的参数
  • 优化数据库结构
    • 拆分表:冷热数据隔离
    • 增加中间表
    • 增加冗余字段
    • 优化数据类型
    • 优化插入记录的速度
    • 使用非空约束
    • 分析表、检查表、优化表
  • 大表优化
    • 限定查询的范围
    • 读/写分离
    • 垂直拆分
    • 水平拆分
  • 其它调优策略
    • 服务器语句超时处理
    • 创建全局通用表空间
    • 隐藏索引对调优的帮助
  • 参考

数据库调优的措施

调优的目标

在这里插入图片描述

如何定位调优问题

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第1张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第2张图片

调优的维度和步骤

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第3张图片

在这里插入图片描述

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第4张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第5张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第6张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第7张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第8张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第9张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第10张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第11张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第12张图片

优化MySQL服务器

在这里插入图片描述

优化服务器硬件

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第13张图片

优化MySQL的参数

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第14张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第15张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第16张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第17张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第18张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第19张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第20张图片

在这里插入图片描述

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第21张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第22张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第23张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第24张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第25张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第26张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第27张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第28张图片

优化数据库结构

在这里插入图片描述

拆分表:冷热数据隔离

在这里插入图片描述

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第29张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第30张图片

增加中间表

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第31张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第32张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第33张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第34张图片

增加冗余字段

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第35张图片

优化数据类型

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第36张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第37张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第38张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第39张图片

在这里插入图片描述

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第40张图片

优化插入记录的速度

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第41张图片

在这里插入图片描述

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第42张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第43张图片

在这里插入图片描述

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第44张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第45张图片

使用非空约束

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第46张图片

分析表、检查表、优化表

在这里插入图片描述

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第47张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第48张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第49张图片

在这里插入图片描述

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第50张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第51张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第52张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第53张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第54张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第55张图片

CREATE TABLE `user1` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(255) DEFAULT NULL,
  `age` INT DEFAULT NULL,
  `sex` VARCHAR(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_name` (`name`) USING BTREE
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb3;

#######
SET GLOBAL log_bin_trust_function_creators = 1;

DELIMITER //
CREATE FUNCTION  rand_num (from_num INT ,to_num INT) RETURNS INT(11)
BEGIN   
DECLARE i INT DEFAULT 0;  
SET i = FLOOR(from_num +RAND()*(to_num - from_num+1))   ;
RETURN i;  
END //
DELIMITER ;

###
DELIMITER //
CREATE PROCEDURE  insert_user( max_num INT )
BEGIN  
DECLARE i INT DEFAULT 0;   
 SET autocommit = 0;    
 REPEAT  
 SET i = i + 1;  
 INSERT INTO `user1` ( NAME,age,sex ) 
 VALUES ("atguigu",rand_num(1,20),"male");  
 UNTIL i = max_num  
 END REPEAT;  
 COMMIT; 
END //
DELIMITER;

##
CALL insert_user(1000);

SHOW INDEX FROM user1;

SELECT * FROM user1;

UPDATE user1 SET NAME = 'atguigu03' WHERE id = 3;

#分析表
ANALYZE TABLE user1;

#检查表
CHECK TABLE user1;

#优化表
CREATE TABLE t1(id INT,NAME VARCHAR(15)) ENGINE = MYISAM;

OPTIMIZE TABLE t1;


CREATE TABLE t2(id INT,NAME VARCHAR(15)) ENGINE = INNODB;

OPTIMIZE TABLE t2;

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第56张图片

大表优化

在这里插入图片描述

限定查询的范围

在这里插入图片描述

读/写分离

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第57张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第58张图片

垂直拆分

在这里插入图片描述

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第59张图片

在这里插入图片描述

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第60张图片

在这里插入图片描述

水平拆分

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第61张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第62张图片

在这里插入图片描述

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第63张图片

其它调优策略

服务器语句超时处理

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第64张图片

创建全局通用表空间

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第65张图片

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第66张图片

CREATE TABLESPACE atguigu1 ADD DATAFILE 'atguigu1.ibd' file_block_size=16k;

CREATE TABLE test(id INT,NAME VARCHAR(10)) ENGINE=INNODB DEFAULT CHARSET utf8mb4 TABLESPACE atguigu1;

ALTER TABLE test TABLESPACE atguigu1;

DROP TABLESPACE atguigu1;

DROP TABLE test;

隐藏索引对调优的帮助

【宋红康 MySQL数据库 】【高级篇】【15】数据库其它调优策略_第67张图片

参考

尚硅谷宋红康: MySQL数据库(入门到高级,菜鸟到大牛).


本文完,感谢您的关注支持!


你可能感兴趣的:(数据库,mysql,数据库)