给大家带来的一篇关于SQL相关的电子书资源,介绍了关于SQL优化、SQL本质方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小192 MB,梁敬彬编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:9.1。
内容介绍
许多人就有武林,有武林就有IT系统,有IT系统就有数据库查询,有数据库查询就有SQL,SQL运用可一字归纳:“广”。加上其简单易学,SQL完成也可一字归纳:“乐”。
殊不知,SQL尽管完成简易可口可乐,却非常容易引起性能难题,那时候众多SQL应用工作人员可要“愁”就一个字,心痛一次次了。
为何有性能难题?缘故也一字归纳:“量”。当系统软件信息量、高并发浏览量上来后,欠佳SQL便会拖跨全部系统软件,大家乃至找不到什么SQL危害了系统软件。就算寻找也不知道怎样动手能力优化。这时的情绪还可以一字归纳:“懵”。
如今《收获,不止SQL优化——抓住SQL的本质》刚开始陪你抛除苦恼,走入优化的可口可乐全球!
最先教你SQL总体优化、迅速优化执行、怎样了解执行计划、怎样上下执行计划这四大必杀招。整这种干啥呢?回答是,教给一个先总体后部分的宏观经济处理构思,走入“道”的全球。
接下去领着大伙儿翱翔在“术”的天上。教你系统架构、逻辑结构、表设计方案、数据库索引设计方案、表联接这五大要点。这么多招数,这也是要干什么?别着急,它是教你怎样解决困难,精确地说,是怎样不改变即进行SQL优化。
接着《收获,不止SQL优化——抓住SQL的本质》引导大伙儿学好等额的改变、全过程包优化、高級SQL、剖析涵数、要求优化这种有关的五大绝学。有点头晕,可否少一点招数?淡定从容,这還是“术”的范围,仍然是教你怎样解决困难,只不过是此次是怎样改变SQL进行优化。
最后一个章节目录没招数了,在其中追随你很多年的错误观点是不是给你开始怀疑人生,在其中让SQL跑得很慢的见解,是不是给你三观全毁?
再多一点真心实意吧,《收获,不止SQL优化——抓住SQL的本质》出示扫二维码輔助学习培训,是否心被小编给暖来到?
念完本书,来,合上书籍,闭上眼,深吸气,认真来体会SQL优化的全球。一个字:“爽”!
目录
-
第1章 全局在胸——用工具对SQL整体优化 1
-
1.1 都有哪些性能工具 1
-
1.1.1 不同调优场景分析 2
-
1.1.2 不同场景对应工具 2
-
1.2 整体性能工具的要点 4
-
1.2.1 五大性能报告的获取 5
-
1.2.2 五大报告关注的要点 10
-
1.3 案例的分享与交流 18
-
1.3.1 和并行等待有关的案例 18
-
1.3.2 和热块竞争有关的案例 19
-
1.3.3 和日志等待有关的案例 20
-
1.3.4 新疆某系统的前台优化 20
-
1.3.5 浙江某系统的调优案例 21
-
1.4 本章总结延伸与习题 21
-
1.4.1 总结延伸 21
-
1.4.2 习题训练 23
-
第2章 风驰电掣——有效缩短SQL优化过程 24
-
2.1 SQL调优时间都去哪儿了 25
-
2.1.1 不善于批处理频频忙交互 25
-
2.1.2 无法抓住主要矛盾瞎折腾 25
-
2.1.3 未能明确需求目标白费劲 26
-
2.1.4 没有分析操作难度乱调优 26
-
2.2 如何缩短SQL调优时间 27
-
2.2.1 先获取有助调优的数据库整体信息 27
-
2.2.2 快速获取SQL运行台前信息 27
-
2.2.3 快速拿到SQL关联幕后信息 28
-
2.3 从案例看快速SQL调优 29
-
2.3.1 获取数据库整体的运行情况 29
-
2.3.2 获取SQL的各种详细信息 29
-
2.4 本章总结延伸与习题 32
-
2.4.1 总结延伸 32
-
2.4.2 习题训练 33
-
第3章 循规蹈矩——如何读懂SQL执行计划 34
-
3.1 执行计划分析概述 35
-
3.1.1 SQL执行计划是什么 35
-
3.1.2 统计信息用来做什么 36
-
3.1.3 数据库统计信息的收集 37
-
3.1.4 数据库的动态采样 37
-
3.1.5 获取执行计划的方法(6种武器) 40
-
3.2 读懂执行计划的关键 48
-
3.2.1 解释经典执行计划方法 49
-
3.2.2 总结说明 55
-
3.3 从案例辨别低效SQL 55
-
3.3.1 从执行计划读出效率 56
-
3.3.2 执行计划效率总结 60
-
3.4 本章习题、总结与延伸 60
-
第4章 运筹帷幄——左右SQL执行计划妙招 62
-
4.1 控制执行计划的方法综述 63
-
4.1.1 控制执行计划的意义 63
-
4.1.2 控制执行计划的思路 64
-
4.2 从案例探索其方法及意义 65
-
4.2.1 HINT的思路 65
-
4.2.2 非HINT方式的执行计划改变 72
-
4.2.3 执行计划的固定 100
-
4.3 本章习题、总结与延伸 102
-
第5章 且慢,感受体系结构让SQL飞 103
-
5.1 体系结构知识 104
-
5.1.1 组成 104
-
5.1.2 原理 104
-
5.1.3 体会 105
-
5.2 体系与SQL优化 106
-
5.2.1 与共享池相关 107
-
5.2.2 数据缓冲相关 111
-
5.2.3 日志归档相关 116
-
5.3 扩展优化案例 118
-
5.3.1 与共享池相关 118
-
5.3.2 数据缓冲相关 122
-
5.3.3 日志归档相关 126
-
5.4 本章习题、总结与延伸 130
-
第6章 且慢,体验逻辑结构让SQL飞 132
-
6.1 逻辑结构 132
-
6.2 体系细节与SQL优化 133
-
6.2.1 Block 133
-
6.2.2 Segment与extent 137
-
6.2.3 Tablespace 139
-
6.2.4 rowid 139
-
6.3 相关优化案例分析 140
-
6.3.1 块的相关案例 141
-
6.3.2 段的相关案例 144
-
6.3.3 表空间的案例 148
-
6.3.4 rowid 151
-
6.4 本章习题、总结与延伸 153
-
第7章 且慢,探寻表的设计让SQL飞 154
-
7.1 表设计 154
-
7.1.1 表的设计 155
-
7.1.2 其他补充 155
-
7.2 表设计与SQL优化 156
-
7.2.1 表的设计 156
-
7.2.2 其他补充 179
-
7.3 相关优化案例分析 184
-
7.3.1 分区表相关案例 185
-
7.3.2 全局临时表案例 190
-
7.3.3 监控异常的表设计 195
-
7.3.4 表设计优化相关案例总结 199
-
7.4 本章习题、总结与延伸 199
-
第8章 且慢,学习索引如何让SQL飞 200
-
8.1 索引知识要点概述 201
-
8.1.1 索引结构的推理 201
-
8.1.2 索引特性的提炼 204
-
8.2 索引的SQL优化 206
-
8.2.1 经典三大特性 207
-
8.2.2 组合索引选用 217
-
8.2.3 索引扫描类型的分类与构造 219
-
8.3 索引相关优化案例 225
-
8.3.1 三大特性的相关案例 225
-
8.3.2 组合索引的经典案例 231
-
8.4 本章习题、总结与延伸 234
-
第9章 且慢,弄清索引之阻碍让SQL飞 235
-
9.1 索引的不足之处 235
-
9.1.1 索引的各种开销 236
-
9.1.2 索引使用失效 236
-
9.2 感受美好索引另一面 237
-
9.2.1 索引各种开销 237
-
9.2.2 索引使用失效 243
-
9.2.3 索引取舍控制 246
-
9.3 从案例看索引各种恨 248
-
9.3.1 索引的开销 248
-
9.3.2 索引去哪儿了 253
-
9.3.3 索引的取舍 267
-
9.4 本章习题、总结与延伸 269
-
第10章 且慢,其他索引应用让SQL飞 270
-
10.1 其他索引的总体概述 270
-
10.1.1 位图索引 271
-
10.1.2 函数索引 271
-
10.1.3 反向键索引 272
-
10.1.4 全文索引 272
-
10.2 走进其他索引的世界 272
-
10.2.1 位图索引 273
-
10.2.2 函数索引 278
-
10.2.3 反向键索引 282
-
10.2.4 全文索引 282
-
10.3 其他索引的相关案例 285
-
10.3.1 位图索引 286
-
10.3.2 函数索引 288
-
10.3.3 反向键索引 297
-
10.3.4 全文索引 299
-
10.4 本章习题、总结与延伸 300
-
第11章 且慢,表连接的秘密让SQL飞 302
-
11.1 三大经典表连接概要说明 302
-
11.2 各类型表连接的知识要点 303
-
11.2.1 从表的访问次数探索 304
-
11.2.2 表驱动顺序与性能 308
-
11.2.3 表连接是否有排序 311
-
11.2.4 各连接的使用限制 314
-
11.2.5 三大表连接的特性总结 317
-
11.3 从案例学表连接优化要点 (三刀三斧四式走天下) 317
-
11.3.1 一次Nested Loops Join的优化全过程 318
-
11.3.2 一次Hash Join 的 优化全过程 320
-
11.3.3 一次 Merge Sort Join 的优化全过程 324
-
11.3.4 一次统计信息收集不准确引发的NL性能瓶颈 329
-
11.4 本章习题、总结与延伸 332
-
第12章 动手,经典等价改写让SQL飞 333
-
12.1 设法减少访问路径 333
-
12.1.1 Case When改造 334
-
12.1.2 Rownum分页改写 337
-
12.1.3 Hint直接路径改造 338
-
12.1.4 只取你所需的列 339
-
12.1.5 避免或者减少递归调用 341
-
12.1.6 ROWID优化应用 347
-
12.2 设法避免外因影响 350
-
12.2.1 Hint改写确保执行计划正确 350
-
12.2.2 避免子查询的错误执行计划 350
-
12.2.3 所在环境的资源不足等问题 351
-
12.3 本章习题、总结与延伸 351
-
第13章 动手,过程函数优化让SQL飞 352
-
13.1 PL/SQL优化重点 353
-
13.1.1 定义类型的优化 353
-
13.1.2 PL/SQL的集合优化 355
-
13.1.3 PL/SQL的游标合并 361
-
13.1.4 动态SQL 364
-
13.1.5 使用10046 trace跟踪PL/SQL 368
-
13.2 PL/SQL优化其他相关扩展 369
-
13.2.1 编译无法成功 369
-
13.2.2 通用脚本分享 370
-
13.3 本章习题、总结与延伸 380
-
第14章 动手,高级写法应用让SQL飞 381
-
14.1 具体SQL调优思路 381
-
14.1.1 改写SQL调优 382
-
14.1.2 不改写SQL调优 382
-
14.2 高级SQL介绍与案例 383
-
14.2.1 GOURP BY的扩展 383
-
14.2.2 INSERT ALL 389
-
14.2.3 MERGE 392
-
14.2.4 WITH子句 402
-
14.3 本章习题、总结与延伸 404
-
第15章 动手,分析函数让SQL飞 406
-
15.1 高级SQL之分析函数 407
-
15.1.1 语法概述 407
-
15.1.2 特别之处 407
-
15.2 分析函数详解与案例 409
-
15.2.1 学习详解 410
-
15.2.2 案例分享 417
-
15.3 本章习题、总结与延伸 432
-
第16章 动手,把握需求改写让SQL飞 433
-
16.1 考虑需求最小化 434
-
16.2 千万弄清SQL改造的等价性 434
-
16.2.1 看似等价的写法,其实不等价 435
-
16.2.2 看似不等价的写法,其实等价 438
-
16.3 开发设计应用中的需求 439
-
16.3.1 界面权限设计优化 439
-
16.3.2 界面汇总与展现 439
-
16.3.3 界面实时刷新改良 439
-
16.3.4 目录树菜单的优化 440
-
16.4 场景选择的经典案例之谁是Count(*)之王 440
-
16.4.1 优化过程 440
-
16.4.2 优化总结 445
-
16.5 本章习题、总结与延伸 446
-
第17章 总结与延伸:从勿信讹传到洞若观火 447
-
17.1 SQL优化的各个误区 447
-
17.1.1 COUNT(*)与COUNT(列)的传言 447
-
17.1.2 谈SQL编写顺序之流言蜚语 451
-
17.1.3 IN与EXISTS之争 455
-
17.1.4 总结探讨 457
-
17.2 误区背后的话题扩展 457
-
17.2.1 话题扩展之等价与否优先 457
-
17.2.2 话题扩展之颠覆误区观点 458
-
17.3 全书完,致读者 461
学习笔记
MYSQL分页limit速度太慢的优化方法
在mysql中limit可以实现快速分页,但是如果数据到了几百万时我们的limit必须优化才能有效的合理的实现分页了,否则可能卡死你的服务器哦。 当一个表数据有几百万的数据的时候成了问题! 如 * from table limit 0,10 这个没有问题 当 limit 200000,10 的时候数据读取就很慢,可以按照一下方法解决 第一页会很快 PERCONA PERFORMANCE CONFERENCE 2009上,来自雅虎的几位工程师带来了一篇”EfficientPagination Using MySQL”的报告 limit10000,20的意思扫描满足条件的10020行,扔掉前面的10000行,返回最后的20行,问题就在这里。 LIMIT 451350 , 30 扫描了45万多行,怪不得慢的都堵死了。 但是 limit 30 这样的语句仅仅扫描30行。 那么如果我们之……
Mysql查询最近一条记录的sql语句(优化篇)
下策——查询出结果后将时间排序后取第一条 select * from a where create_time="2017-03-29 19:30:36" order by create_time desclimit 1 这样做虽然可以取出当前时间最近的一条记录,但是一次查询需要将表遍历一遍,对于百万以上数据查询将比较费时;limit是先取出全部结果,然后取第一条,相当于查询中占用了不必要的时间和空间;还有如果需要批量取出最近一条记录,比方说:“一个订单表,有用户,订单时间,金额,需要一次性查询所有用户的最近的一条订单记录”,那么每个用户一次查询就要做一次整表的遍历,数据大的情况下,时间将会以指数形式增长,不能投入实际使用。 中策——查询排序后group by select *……
mysql explain的用法(使用explain优化查询语句)
首先我来给一个简单的例子,然后再来解释explain列的信息。 表一:catefory 文章分类表: CREATE TABLE IF NOT EXISTS `category` ( `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=MyISAM INSERT INTO `test`.`category` VALUES (NULL , '分类1'); INSERT INTO `test`.`category` VALUES (NULL , '分类2'); INSERT INTO `test`.`category` VALUES (NULL , '分类3'); 表二:article文章表: CREATE TABLE IF NOT EXISTS `article` ( `aid` int(11) NOT NULL, `cid` int(11) NOT NULL, `content` text NOT NULL, PRIMARY KEY (`aid`), KEY `cid` (`cid`)) ENGINE=MyISAMINSERT INTO `test`.`article` (`aid`, `cid`, `content`) VALUES ('', '7', '码农之家(jb51.net)教程'); 执行explain: EXPLAIN SELECT name, conte……
设置MySQL中的数据类型来优化运行速度的实例
今天看了一个优化案例觉的挺有代表性,这里记录下来做一个标记,来纪念一下随便的字段定义的问题。 回忆一下,在表的设计中很多人习惯的把表的结构设计成Varchar(64),Varchar(255)之类的,虽然大多数情况只存了5-15个字节.那么我看一下下面这个案例. 查询语句: SELECT SQL_NO_CACHE channel, COUNT(channel) AS visitors FROM xxx_sources WHERE client_id = 1301 GROUP BY client_id, channel; 该表(client_id,channel)是一个组合索引. 利用explain,看一下执行计划,对于索引使用上看上非常完美 mysql explain SELECT SQL_NO_CACHE channel, COUNT(channel) AS visitors FROM xxx_sources WHERE client_id = 1301 GROUP BY client_id, channel;+----+-------------+-------------+-------+--------------------+----------……
MySQL性能优化配置参数之thread_cache和table_cache详解
一、THREAD_CACHE MySQL里面为了提高客户端请求创建连接过程的性能,提供了一个连接池也就是 Thread_Cache池,将空闲的连接线程放在连接池中,而不是立即销毁.这样的好处就是,当又有一个新的请求的时候,mysql不会立即去创建连接 线程,而是先去Thread_Cache中去查找空闲的连接线程,如果存在则直接使用,不存在才创建新的连接线程. 有关Thread_Cache在MySQL有几个重要的参数,简单介绍如下: thread_cache_size Thread_Cache 中存放的最大连接线程数.在短连接的应用中Thread_Cache的功效非常明显,因为在应用中数据库的连接和创建是非常频繁的,如果不使用 Thread_Cache那么消耗的资源是非常可观的!在长连接中虽然带来的改善没有短连接的……
以上就是本次介绍的SQL电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。
上一篇:量化金融R语言初级教程
下一篇:6LoWPAN:无线嵌入式物联网