本篇博客记录了自己读的mysql文档、优化经验、原理、备忘等,在日常工作中使用数据库遇到一些问题及一些解决方案和个人想法,都是一些常用数据库的命令、优化、记录、问题总结,可能也会涉及一些其它数据库,有一些是工作中实际场景(公司数据已经脱敏或打码)。仅是个人记录使用,(如有误请反馈,万分感谢!)
一、常用命令:
mysql explain 介绍:
(1)《高性能MySQL》第三版中附录(p687)有很基础详细的介绍Explain的使用
(2)转载:[MySQL高级](一) EXPLAIN用法和结果分析_explain 用法-CSDN博客
二、常用优化技巧
(1)explain 分析语句
(2)是否使用索引、没有建立索引
(3)遍历查询改为分批查询
(4)查询结果少带无用数据,不使用*
(5)数据库字段类型选用,选用占用空间少的
(6)查询单条记录,使用limit
(7)尽量不使用in/not in/exit/not exit
(8)mysql 日志:错误日志、二进制日志(binlog)、查询日志、慢查询日志
三、分页
(1)使用limit offset 。offset 定位,limit 控制条数
(2)分库分表(阿里云drds、sharding-jdbc)
(3)使用缓存、减少数据库压力
(4)orm框架(带有的缓存功能)
四、sql业务统计
(1)筛选一张表中的重复数据:
重复列:R 主键:P(或其他不重复列,尽量放在索引上)
select R , count(R) from table (where 条件) group by R having count(R)>1;
可查询重复列的值
group by 列1,列2 ,... 分组(多列:每列都满足)重复统计,配合聚合函数 sum,count统计数据
having 对查询的列执行操作
五、其他数据工具
sublime/notepad++:
(1)选列值:ALT+鼠标左键
(2) 换行 ctrl+j