sql的执行原理

 sql oracle大款用的 mysql被收购->MariaDB
 nosql 键值型redis 文档型mogodb 搜索引擎solr es 列式Hbase(相邻数据更容易压缩,降低io,分布式存储) 图形(社交关系)

mysql强在插件引擎上,每张表都可以分别单独设置引擎,oracle避免硬解析,强在绑定变量,但是查询条件不一样就失效了

先对sql hash运算在库缓存中是否找到返回执行计划和sql语句,没找到进入优化器oracle创建解析器进行解析,生成执行计划,之后就是执行器

共享池包括库缓存,数据字典缓冲池等

库缓存:缓存sql和执行计划

数据字典缓冲池:对象定义,比如视图 表 索引

 mysql

1 查询缓存效果不好,8.0废弃

2 解析器:语法 语义

3 优化器: 确定sql语句的执行路径,比如根据全表还是索引

4 执行器 执行之前判断用户是否有权限,8.0以下,如果设置缓存,就将查询结果进行缓存

show profile查看上一段sql在各部分的执行时间

InnoDB 5.5之后默认,支持事务,行及锁定,外键约束等

MylSam:5.5之前,以上都不支持,占用资源少,运行速度快,应用场景 读写分离

猜你喜欢

转载自www.cnblogs.com/autointerface/p/11933945.html