在和SQLPass讨论adhoc和Prepare时,有各自不同的观点,我来发表下我的理解,不对之处,敬请指出! Adhoc(即席查询):没有参数化的查询计划会被标记为adhoc,adhoc不能理解为该执行计划不会被重用。 Prepared(预定义):查询中使用到参数的执行计划会被标记为Prepare ...
分类:
其他好文 时间:
2019-09-02 13:31:27
阅读次数:
73
mysql默认是没有开启慢查询的 1 查看慢查询的配置状态 show variables like 'slow_query%'; slow_query_log 慢查询开启状态 slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQ ...
分类:
数据库 时间:
2019-08-28 01:03:46
阅读次数:
115
Cost-based query transformation in Oracle Enhanced Subquery Optimizations in Oracle Cost-based query transformation in Oracle 本文介绍Oracle的查询优化框架, 先描述,O ...
分类:
数据库 时间:
2019-08-27 20:53:47
阅读次数:
177
[TOC] 小科普 核心业务逻辑代码一般都是 放在服务端 的 客户端容易被懂行点的人修改源码,造成损失 视图 什么是视图 一个查询语句的结果是虚拟表,将(查询出)这张虚拟表(的sql语句)保存下来,他就变成了一个视图(mysql中还是以表的形式存在的) 为什么要用视图 当频繁需要用到多张表的联表结果 ...
分类:
数据库 时间:
2019-08-24 22:52:50
阅读次数:
126
知识回顾:数据都是存在硬盘上的,那查询数据不可避免的需要进行IO操作 *索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。* * primary key* unique key 快 加 约束* index key 只有快 foreign key 是建表与表之间的关系 注意fo ...
分类:
其他好文 时间:
2019-08-24 18:18:25
阅读次数:
88
数据库引擎的工作流程可以归纳为接收请求、执行请求和返回结果。数据库引擎每接收到一个新的查询请求(Query Request),查询优化器就会执行以下工作流程:编译请求,生成执行计划,并把执行计划缓存到内存中,执行计划,最后向客户端返回查询的结果。把执行计划存储到内存的目的是为了复用执行计划,减少编译 ...
分类:
其他好文 时间:
2019-08-16 17:11:48
阅读次数:
83
索引原理分析:数据结构 索引是最常见的慢查询优化方式其是一种优化查询的数据结构,MySql中的索引是用B+树实现,而B+树就是一种数据结构,可以优化查询速度,可以利用索引快速查找数据,优化查询。 可以提高查询速度的数据结构:哈希表、完全平衡二叉树、B树、B+树等等。 哈希:select* from ...
分类:
数据库 时间:
2019-08-12 00:51:20
阅读次数:
149
1. 关联查询执行流程 MySQL 执行关联查询的策略很简单,他会从一个表中循环取出单条数据,然后用该条数据到下一个表中寻找匹配的行,然后回溯到上一个表,到所有的数据匹配完成为止。因此也被称为“ 嵌套循环关联 ”。 来看下面这个SQL: ~~~mysql select tb1.col1, tb2,c ...
分类:
数据库 时间:
2019-08-10 19:00:25
阅读次数:
110
一、背景 直接从数据库查询所有数据,耗时、耗内存,改为分页查询部分数据 二、常规查询 1. mysql: limit 从第m条数据开始,查询n条数据 select * from table limit m,n 2. sql server: top+子查询 3. 原理:从数据库的第一条记录开始扫描 越 ...
分类:
其他好文 时间:
2019-08-10 11:46:55
阅读次数:
115
一、查询语句优化 mysql通过explain语句,可以分析一条查询语句的执行信息,例如是否命中索引,然后优化查询语句 二、子查询优化 尽量用Join代理子查询,因为子查询会建立临时表,有系统开销 三、使用索引 1. like关键字匹配,不会使用索引 2. or关键字必须两遍都建立了索引,才会用到索 ...
分类:
数据库 时间:
2019-08-10 11:42:37
阅读次数:
123