欧冶云商:通用数据库的SQL优化.pptx
通用数据库的SQL优化
演讲人:薛晓刚
目录
CONTENTS▶个人/主题简介
优化的本质
从SQL优化管理需求
从SQL优化管理设计
秒杀大数据的案例
简介
OracleACE-Pro(Database方向)
MySQL讲师
PostgreSQLACEPartner
阿里云MVP
墨天轮MVP
TiDBMVA
ITPUB论坛内存数据库版主、核心专家、金牌顾问
ITPUB培训专家百人团
收录国内数据库风云百人团
机械工业出版社专家委员会委员
优化的本质
减少IO、减少交互、减少不必要的操作。
优化的本质
尽可能的少让数据库做事情(包含架构和框架方面)
持续多年的常见SQL
select
count(0)
from
(
SELECT
此处省略上百行
FROM
(
d
LEFTJOINdeond.ID=de.ID
LEFTJOINpONd.ID=p.ID
)
LEFTJOINoONo.ID=d.ID
WHERE
此处省略几十行
orderBY
d.TIMEDESC
)tmp_count;
互联网分页与数据库分页
分页概念:不对结果集进行真实的查询与返回,只
把结果集的很少一部分进行返回。
分页特点:与总数关系不大。
select*fromtwhererownum10或者limit10
或者用fetchfirst10rowsonly;
即使几十亿数据甚至PB级别由于分页作用毫秒级别返
回。
未发生真实结果集查询。数据库极轻量级操作。
常见的分页SQL
SELECT*FROM(SELECT*,ROWNUMRNFROM(SELECT
*FROMTABLEwhere条件使用到索引)AWHEREROWNUM
=40)WHERERN=21;
DBA视角的分页。即使用到索引也不会返回全部索引的数据。
selectcount(1)from(select*fromtwhere条件是不是用到
索引不关心+排序);分页组件,但是