博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL优化
阅读量:6224 次
发布时间:2019-06-21

本文共 1224 字,大约阅读时间需要 4 分钟。

MySQL

1. 优化SQL语句

MySQL慢日志的开启

查看数据库是否开启了慢查询日志SHOW VARIABLES LIKE 'slow_query_log';查看数据库是否将未使用索引的SQL记录到日志中SHOW VARIABLES LIKE 'log_queries_not_using_indexes';查看慢查询日志记录的慢查询日志时间SHOW VARIABLES LIKE 'log_query_time';查看慢查询日志文件存放位置SHOW VARIABLES LIKE 'slow_query_log_file';设置MySQL数据库开启慢查询日志SET GLOBAL slow_query_log = on;设置慢查询日志文件存储位置SET GLOBAL slow_query_log_file='';打开慢查询日志存储为设置索引的SQLSET GLOBAL log_queries_not_using_indexes = on;设置记录的慢查询日志超时时间SET GLOBAL log_query_time = 1;慢查询日志的存储格式#time:  查询的开始时间#user@host: 查询主机用户信息#query_time: SQL的执行信息#set timestamp: SQL执行时间#select concat :执行的SQL语句

MySQL慢查询日志分析工具

mysqldumpslow -h

通过慢查询日志发现有问题的SQL

1.发现查询次数多且占用时间长的SQL(多:使用基于内存的数据库或使用缓存,长:优化SQL语句)2.未命中索引的SQL(优化SQL语句添加特定索引优化)

使用explain查看SQL执行计划:查询结果属性说明

id select_type table type possible_keys key key_len ref rows extra
说明 查询id 查询类型 使用的表 类型 可能使用的索引 应用索引 索引长度 引用 返回行数 扩展说明

2.优化索引

选择合适的列建立索引

在where从句,group by从句,order by从句,on从句中出现的的列创建索引。索引列的字段长度越小越好。离散度大的列放到联合索引的前面。

索引的优化

1.避免使用重复及冗余的索引2.去掉因业务变更,未使用的索引

3.数据库结构优化

优化数据大小

设计表以最小化磁盘空间,尽量使用最小化的数据大小来存储数据。

优化MySQL数据库数据类型

1.选择合适类型的数据类型,存储数据2.使用可以存下你的数据的最小数据类型3.尽可能使用简单的数据类型4.尽可能使用not null定义字段,采用默认值方式5.尽量少使用text类型,非用不可时最好使用分表的方式6.数据库中不要存储二进制文本,图片,音频等数据。而要存储数据的网络路径7.使用反范式化设计,设计一定的冗余字段,以减少多表联合查询。

转载地址:http://nzfna.baihongyu.com/

你可能感兴趣的文章
mysqldump: Got error: 1556: You can't use locks with log tables
查看>>
JS闭包
查看>>
Windows 管理PostgreSQL服务
查看>>
演讲实录 | Service Mesh 时代的选边与站队(附PPT下载)
查看>>
Eclipse 安装findbugs插件
查看>>
labview加密分析-1综述
查看>>
log4j自定义Appender
查看>>
部署公司后台管理系统中 关于jar包冲突的问题
查看>>
【九度OJ1367】|【剑指offer24】二叉搜索树的后序遍历序列
查看>>
JVM运行时内存结构
查看>>
MySQL数据库删除后的恢复工作
查看>>
转:wordpress样式修改
查看>>
我的友情链接
查看>>
仿新浪微博底部菜单TabHost
查看>>
【高清视频】CCNA系列课程之五:STP生成树协议介绍
查看>>
u盘 找不到应用程序
查看>>
Red hat samba不识别windows 下的中文
查看>>
MDT U盘自动部署报错解决办法
查看>>
java线程
查看>>
函数式编程----内建函数
查看>>