博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于mysql数据库
阅读量:6905 次
发布时间:2019-06-27

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

hot3.png

这篇文章写的比较杂,没有去详细的写哪个点,只是把常用的一些东西写出来

先说一下隔离级别,Sql Server , 等 大多数数据库的默认级别就是Read committed,当初我也记得mysql的隔离级别是读已提交,后来查了一下,没想到的是默认Repeatable read 重复读

接下来说索引,mysql支持两种类型的索引 hash和BTree

hash类型的索引:查询单条快,范围查询慢

btree类型的索引:b+树,层数越多,数据量指数级增长

不同的存储引擎支持的索引类型也不一样,mysql默认储存引擎是InnoDB

InnoDB 支持事务,支持行级别锁定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;
MyISAM 不支持事务,支持表级别锁定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;
Memory 不支持事务,支持表级别锁定,支持 B-tree、Hash 等索引,不支持 Full-text 索引;
NDB 支持事务,支持行级别锁定,支持 Hash 索引,不支持 B-tree、Full-text 等索引;
Archive 不支持事务,支持表级别锁定,不支持 B-tree、Hash、Full-text 等索引;

查询的优化: 可以使用慢查询日志去查看,现在大都使用各种工具图形化查看

1.先运行看看是否真的很慢,注意设置SQL_NO_CACHE

2.where条件单表查,锁定最小返回记录表。这句话的意思是把查询语句的where都应用到表中返回的记录数最小的表开始查起,单表每个字段分别查询,看哪个字段的区分度最高
3.explain查看执行计划,是否与1预期一致(从锁定记录较少的表开始查询)
4.order by limit 形式的sql语句让排序的表优先查
5.了解业务方使用场景
6.加索引时参照建索引的几大原则
7.观察结果,不符合预期继续从0分析

转载于:https://my.oschina.net/u/3526783/blog/2992392

你可能感兴趣的文章
Linux系统下常见性能分析工具的使用
查看>>
通过rsync+inotify实现数据的实时备份
查看>>
日志收集框架 Flume 组件之Source使用
查看>>
事件驱动模型
查看>>
ASP.NET MVC 音乐商店 - 3. 视图与模型
查看>>
mcollective安装文档
查看>>
GRE隧道模式与IPSec传输模式构建×××
查看>>
linux命令6--touch命令
查看>>
我的友情链接
查看>>
且谈布局适配和日志框架
查看>>
在论坛中出现的比较难的sql问题:15(行转列2)
查看>>
springboot中的5种通知小例子
查看>>
mysql数据通过jdbc操作作为Spark数据源案例
查看>>
Sersync实现触发式文件同步
查看>>
shell练习题
查看>>
从硬件竞争到软实力PK——电视媒体竞争观察
查看>>
大型网站压力测试及优化方案
查看>>
matlab中 mcc、mbuild和mex命令详解
查看>>
CentOS6系统部署mysql+php+wordpress博客系统
查看>>
对Java并发编程的几点思考
查看>>