
| 网易CEO丁磊隆重推荐: 本书系统深入地讲解了MySQL数据库中SQL编程的各种方法、技巧和最佳实践,推荐DBA和开发人员参阅! 畅销书《MySQL技术内幕:InnoDB存储引擎》姊妹篇,揭示SQL编程的奥秘,演绎SQL编程之美 资深MySQL专家亲自执笔,多个技术社区和多位数据库专家联袂推荐 |
| 姜承尧(David Jiang),资深MySQL数据库专家,MySQL开源分支版本InnoSQL(www.innomysql.org)的创始人,独立数据库咨询顾问(www.innosql.com)。不仅擅长于数据库的管理和维护,还擅长于数据库的开发,同时一直致力于MySQL数据库底层实现原理的研究和探索,对高性能数据库和数据仓库也有深刻而独到的理解。目前就职于网易研究院,担任后台技术中心技术经理一职,从事MySQL数据库底层以及云的相关的开发工作。曾领导并参与了多个大型核心数据库应用的设计、实施、管理和维护,实战经验非常丰富。活跃于开.. << 查看详细 |
| 《mysql技术内幕:sql编程》 序 前言 第1章 sql编程/1 1.1 mysql数据库/2 1.1.1 mysql数据库历史/2 1.1.2 mysql数据库的分支版本/4 1.2 sql编程/5 1.3 数据库的应用类型/7 1.3.1 oltp/7 1.3.2 olap/8 1.3.3 oltp与olap的比较/9 1.3.4 mysql存储引擎及其面向的数据库应用/10 1.4 图形化的sql查询分析器/12 1.4.1 mysql workbench/12 1.4.2 toad for mysql/12 1.4.3 imysql-front/13 1.5 小结/15 第2章 数据类型/16 2.1 类型属性/17 .2.1.1 unsigned/17 2.1.2 zerofill/20 2.2 sql_mode设置/21 2.3 日期和时间类型/26 2.3.1 datetime和 date/26 2.3.2 timestamp/28 2.3.3 year和time/30 2.3.4 与日期和时间相关的函数/31 2.4 关于日期的经典sql编程问题/34 2.4.1 生日问题/34 2.4.2 重叠问题/37 2.4.3 星期数的问题/48 2.5 数字类型/53 2.5.1 整型/53 2.5.2 浮点型(非精确类型)/54 2.5.3 高精度类型/54 2.5.4 位类型/55 2.6 关于数字的经典sql编程问题/56 2.6.1 数字辅助表/56 2.6.2 连续范围问题/58 2.7 字符类型/60 2.7.1 字符集/60 2.7.2 排序规则/64 2.7.3 char和varchar/68 2.7.4 binary和varbinary/70 2.7.5 blob和text/72 2.7.6 enum和set类型/73 2.8 小结/75 第3章 查询处理/76 3.1 逻辑查询处理/77 3.1.1 执行笛卡儿积/79 3.1.2 应用on过滤器/80 3.1.3 添加外部行/83 3.1.4 应用where过滤器/84 3.1.5 分组/85 3.1.6 应用rollup或cube/86 3.1.7 应用having过滤器/86 3.1.8 处理select列表/87 3.1.9 应用distinct子句/87 3.1.10 应用order by子句/88 3.1.11 limit子句/92 3.2 物理查询处理/93 3.3 小结/95 第4章 子查询/96 4.1 子查询概述/97 4.1.1 子查询的优点和限制/97 4.1.2 使用子查询进行比较/97 4.1.3 使用any、in和some进行子查询/98 4.1.4 使用all进行子查询/99 4.2 独立子查询/99 4.3 相关子查询/105 4.4 exists谓词/109 4.4.1 exists /109 4.4.2 not exists/111 4.5 派生表/113 4.6 子查询可以解决的经典问题/114 4.6.1 行号/114 4.6.2 分区/118 4.6.3 最小缺失值问题/121 4.6.4 缺失范围和连续范围/122 4.7 mariadb对semi join的优化/126 4.7.1 概述/126 4.7.2 table pullout优化/127 4.7.3 duplicate weedout 优化/128 4.7.4 materialization优化/129 4.8 小结/130 第5章 联接与集合操作/132 5.1 联接查询/133 5.1.1 新旧查询语法/133 5.1.2 cross join/134 5.1.3 inner join/137 5.1.4 outer join/138 5.1.5 natural join/141 5.1.6 straight_join/141 5.2 其他联接分类/142 5.2.1 self join/143 5.2.2 nonequi join/144 5.2.3 semi join和anti semi join/145 5.3 多表联接/146 5.4 滑动订单问题/148 5.5 联接算法/150 5.5.1 simple nested-loops join算法/150 5.5.2 block nested-loops join算法/155 5.5.3 batched key access join算法/158 5.5.4 classic hash join算法/161 5.6 集合操作/163 5.6.1 集合操作的概述/163 5.6.2 union distinct和union all/165 5.6.3 except/167 5.6.4 intersect/170 5.7 小结/171 第6章 聚合和旋转操作/172 6.1 聚合 /173 6.1.1 聚合函数/173 6.1.2 聚合的算法/174 6.2 附加属性聚合/176 6.3 连续聚合/178 6.3.1 累积聚合/179 6.3.2 滑动聚合/183 6.3.3 年初至今聚合/184 6.4 pivoting/185 6.4.1 开放架构/185 6.4.2 关系除法/187 6.4.3 格式化聚合数据/189 6.5 unpivoting/191 6.6 cube 和 rollup/193 6.6.1 rollup/193 6.6.2 cube/196 6.7 小结/197 第7章 游标/198 7.1 面向集合与面向过程的开发/199 7.2 游标的使用/199 7.3 游标的开销/200 7.4 使用游标解决问题/202 7.4.1 游标的性能分析/202 7.4.2 连续聚合/203 7.4.3 最大会话数/206 7.5 小结/210 第8章 事务编程/211 8.1 事务概述/212 8.2 事务的分类/214 8.3 事务控制语句/219 8.4 隐式提交的sql语句/224 8.5 事务的隔离级别/225 8.6 分布式事务编程/229 8.7 不好的事务编程习惯/234 8.7.1 在循环中提交/234 8.7.2 使用自动提交/236 8.7.3 使用自动回滚/236 8.8 长事务/239 8.9 小结/240 第9章 索引/242 9.1 缓冲池、顺序读取与随机读取/243 9.2 数据结构与算法/246 9.2.1 二分查找法/246 9.2.2 二叉查找树和平衡二叉树/247 9.3 b+树/249 9.3.1 b+树的插入操作/250 9.3.2 b+树的删除操作/252 9.4 b+树索引/253 9.4.1 innodb b+树索引/254 9.4.2 myisam b+树索引/256 9.5 cardinality/256 9.5.1 什么是cardinality/256 9.5.2 innodb存储引擎怎样统计cardinality/257 9.6 b+树索引的使用/259 9.6.1 不同应用中b+树索引的使用/259 9.6.2 联合索引/260 9.6.3 覆盖索引/262 9.6.4 优化器选择不使用索引的情况/263 9.6.5 index hint/265 9.7 multi-range read/267 9.8 index condition pushdown/269 9.9 t树索引/271 9.9.1 t树概述/271 9.9.2 t树的查找、插入和删除操作/272 9.9.3 t树的旋转/273 9.10 哈希索引/276 9.10.1 散列表/276 9.10.2 innodb存储引擎中的散列算法/278 9.10.3 自适应哈希索引/278 9.11 小结/279 第10章 分区/280 10.1 分区概述/281 10.2 分区类型/283 10.2.1 range分区/283 10.2.2 list分区/289 10.2.3 hash分区/291 10.2.4 key分区/293 10.2.5 columns分区/293 10.3 子分区/295 10.4 分区中的null值/298 10.5 分区和性能/301 10.6 在表和分区间交换数据/305 10.7 小结/307 |
商品评论(0条)