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之前,以上都不支持,占用资源少,运行速度快,应用场景 读写分离