logo
分类于: 编程语言 计算机基础 互联网 设计

简介

MySQL技术内幕: SQL编程

MySQL技术内幕: SQL编程 7.3分

资源最后更新于 2020-03-29 03:39:11

作者:姜承尧

出版社:出版社机械工业出版社

出版日期:2012-04

ISBN:9787111377641

文件格式: pdf

标签: 网络 计算机 编程 限时特价

简介· · · · · ·

本书是畅销书《MySQL技术内幕:InnoDB存储引擎》的姊妹篇,深刻揭示了MySQL中SQL编程的精髓与奥秘,能为开发者和DBA们利用SQL语言解决各种与开发和管理相关的MySQL难题提供很好的指导和帮助。全书一共10章,全面探讨了MySQL中SQL编程的各种方法、技巧与最佳实践。第1章首先介绍了SQL编程的概念、数据库的应用类型以及SQL查询分析器,然后介绍了SQL编程的三个阶段,希望读者通过本书的学习能达到最后的融合阶段。第2章全面讲解了MySQL中的各种数据类型和与之相对应的各种编程问题。第3章深入探讨了逻辑查询与物理查询的原理与方法。第4章的主题是子查询,不仅讲解了各种常用的子查询方法及其优化,而且还讲解了MariaDB对子查询的优化。第5章首先详细地分析了MySQL中的各种联接及其内部的实现算法,以及MariaDB数据库中引入的Hash Join,然后针对关于集合的各种操作给出了解决方案。第6章分享了聚合和旋转操作的方法与技巧,并对一些经典的常见问题给出了解决方案。第7章深入阐述了游标的使用,重点在于如何通过正确地使用游标来提高SQL编程的效率。第8章讲解了关于事务的各种编程技巧,同时对事务的分类进行了详细阐述。第9章详细分析了各种索引的内部实现,探讨了如何使用索引来提升查询效率。第10章介绍了分区的方法与技巧,阐明了如何通过分区来进行SQL编程。无论你是开发人员还是DBA,无论你是需要一本SQL查询手册还是希望系统深入地学习SQL编程,本书都会是不错的选择。姜承尧(David Jiang):资深MySQL数据库专家,MySQL开源分支版本InnoSQL(www.innomysql.org)的创始人,独立数据库咨询顾问(www.innosql.com)。不仅擅长于数据库的管理和维护,还擅长于数据库的开发,同时一直致力于MySQL数据库底层实现原理的研究和探索,对高性能数据库和数据仓库也有深刻而独到的理解。目前就职于网易研究院,担任后台技术中心技术经理一职,从事MySQL数据库底层以及云的相关的开发工作。曾领导并参与了多个大型核心数据库应用的设计、实施、管理和维护,实战经验非常丰富。活跃于开源数据库和开源软件领域,是著名开源社区ChinaUnix MySQL版块的版主,热衷于分享MySQL数据库的各种成功应用实践。

想要: 点击会收藏到你的 我的收藏,可以在这里查看

已收: 表示已经收藏

Tips: 注册一个用户 可以通过用户中心得到电子书更新的通知哦

目录

  1. 前言
  2. 为什么要写这本书
  3. 读者对象
  4. 如何阅读本书
  5. 勘误和支持
  6. 致谢
  7. 第1章 SQL编程
  8. 1.1 MySQL数据库
  9. 1.1.1 MySQL数据库历史
  10. 1.1.2 MySQL数据库的分支版本
  11. 1.2 SQL编程
  12. 1.3 数据库的应用类型
  13. 1.3.1 OLTP
  14. 1.3.2 OLAP
  15. 1.3.3 OLTP与OLAP的比较
  16. 1.3.4 MySQL存储引擎及其面向的数据库应用
  17. 1.4 图形化的SQL查询分析器
  18. 1.4.1 MySQL Workbench
  19. 1.4.2 Toad for MySQL
  20. 1.4.3 iMySQL-Front
  21. 1.5 小结
  22. 第2章 数据类型
  23. 2.1 类型属性
  24. 2.1.1 UNSIGNED
  25. 2.1.2 ZEROFILL
  26. 2.2 SQL_MODE设置
  27. 2.3 日期和时间类型
  28. 2.3.1 DATETIME和DATE
  29. 2.3.2 TIMESTAMP
  30. 2.3.3 YEAR和TIME
  31. 2.3.4 与日期和时间相关的函数
  32. 2.4 关于日期的经典SQL编程问题
  33. 2.4.1 生日问题
  34. 2.4.2 重叠问题
  35. 2.4.3 星期数的问题
  36. 2.5 数字类型
  37. 2.5.1 整型
  38. 2.5.2 浮点型(非精确类型)
  39. 2.5.3 高精度类型
  40. 2.5.4 位类型
  41. 2.6 关于数字的经典SQL编程问题
  42. 2.6.1 数字辅助表
  43. 2.6.2 连续范围问题
  44. 2.7 字符类型
  45. 2.7.1 字符集
  46. 2.7.2 排序规则
  47. 2.7.3 CHAR和VARCHAR
  48. 2.7.4 BINARY和VARBINARY
  49. 2.7.5 BLOB和TEXT
  50. 2.7.6 ENUM和SET类型
  51. 2.8 小结
  52. 第3章 查询处理
  53. 3.1 逻辑查询处理
  54. 3.1.1 执行笛卡儿积
  55. 3.1.2 应用ON过滤器
  56. 3.1.3 添加外部行
  57. 3.1.4 应用WHERE过滤器
  58. 3.1.5 分组
  59. 3.1.6 应用ROLLUP或CUBE
  60. 3.1.7 应用HAVING过滤器
  61. 3.1.8 处理SELECT列表
  62. 3.1.9 应用DISTINCT子句
  63. 3.1.10 应用ORDER BY子句
  64. 3.1.11 LIMIT子句
  65. 3.2 物理查询处理
  66. 3.3 小结
  67. 第4章 子查询
  68. 4.1 子查询概述
  69. 4.1.1 子查询的优点和限制
  70. 4.1.2 使用子查询进行比较
  71. 4.1.3 使用ANY、IN和SOME进行子查询
  72. 4.1.4 使用ALL进行子查询
  73. 4.2 独立子查询
  74. 4.3 相关子查询
  75. 4.4 EXISTS谓词
  76. 4.4.1 EXISTS
  77. 4.4.2 NOT EXISTS
  78. 4.5 派生表
  79. 4.6 子查询可以解决的经典问题
  80. 4.6.1 行号
  81. 4.6.2 分区
  82. 4.6.3 最小缺失值问题
  83. 4.6.4 缺失范围和连续范围
  84. 4.7 MariaDB对SEMI JOIN的优化
  85. 4.7.1 概述
  86. 4.7.2 Table Pullout优化
  87. 4.7.3 Duplicate Weedout优化
  88. 4.7.4 Materialization优化
  89. 4.8 小结
  90. 第5章 联接与集合操作
  91. 5.1 联接查询
  92. 5.1.1 新旧查询语法
  93. 5.1.2 CROSS JOIN
  94. 5.1.3 INNER JOIN
  95. 5.1.4 OUTER JOIN
  96. 5.1.5 NATURAL JOIN
  97. 5.1.6 STRAIGHT_JOIN
  98. 5.2 其他联接分类
  99. 5.2.1 SELF JOIN
  100. 5.2.2 NONEQUI JOIN
  101. 5.2.3 SEMI JOIN和ANTI SEMI JOIN
  102. 5.3 多表联接
  103. 5.4 滑动订单问题
  104. 5.5 联接算法
  105. 5.5.1 Simple Nested-Loops Join算法
  106. 5.5.2 Block Nested-Loops Join算法
  107. 5.5.3 Batched Key Access Join算法
  108. 5.5.4 Classic Hash Join算法
  109. 5.6 集合操作
  110. 5.6.1 集合操作的概述
  111. 5.6.2 UNION DISTINCT和UNION ALL
  112. 5.6.3 EXCEPT
  113. 5.6.4 INTERSECT
  114. 5.7 小结
  115. 第6章 聚合和旋转操作
  116. 6.1 聚合
  117. 6.1.1 聚合函数
  118. 6.1.2 聚合的算法
  119. 6.2 附加属性聚合
  120. 6.3 连续聚合
  121. 6.3.1 累积聚合
  122. 6.3.2 滑动聚合
  123. 6.3.3 年初至今聚合
  124. 6.4 Pivoting
  125. 6.4.1 开放架构
  126. 6.4.2 关系除法
  127. 6.4.3 格式化聚合数据
  128. 6.5 Unpivoting
  129. 6.6 CUBE和ROLLUP
  130. 6.6.1 ROLLUP
  131. 6.6.2 CUBE
  132. 6.7 小结
  133. 第7章 游标
  134. 7.1 面向集合与面向过程的开发
  135. 7.2 游标的使用
  136. 7.3 游标的开销
  137. 7.4 使用游标解决问题
  138. 7.4.1 游标的性能分析
  139. 7.4.2 连续聚合
  140. 7.4.3 最大会话数
  141. 7.5 小结
  142. 第8章 事务编程
  143. 8.1 事务概述
  144. 8.2 事务的分类
  145. 8.3 事务控制语句
  146. 8.4 隐式提交的SQL语句
  147. 8.5 事务的隔离级别
  148. 8.6 分布式事务编程
  149. 8.7 不好的事务编程习惯
  150. 8.7.1 在循环中提交
  151. 8.7.2 使用自动提交
  152. 8.7.3 使用自动回滚
  153. 8.8 长事务
  154. 8.9 小结
  155. 第9章 索引
  156. 9.1 缓冲池、顺序读取与随机读取
  157. 9.2 数据结构与算法
  158. 9.2.1 二分查找法
  159. 9.2.2 二叉查找树和平衡二叉树
  160. 9.3 B+树
  161. 9.3.1 B+树的插入操作
  162. 9.3.2 B+树的删除操作
  163. 9.4 B+树索引
  164. 9.4.1 InnoDB B+树索引
  165. 9.4.2 MyISAM B+树索引
  166. 9.5 Cardinality
  167. 9.5.1 什么是Cardinality
  168. 9.5.2 InnoDB存储引擎怎样统计Cardinality
  169. 9.6 B+树索引的使用
  170. 9.6.1 不同应用中B+树索引的使用
  171. 9.6.2 联合索引
  172. 9.6.3 覆盖索引
  173. 9.6.4 优化器选择不使用索引的情况
  174. 9.6.5 INDEX HINT
  175. 9.7 Multi-Range Read
  176. 9.8 Index Condition Pushdown
  177. 9.9 T树索引
  178. 9.9.1 T树概述
  179. 9.9.2 T树的查找、插入和删除操作
  180. 9.9.3 T树的旋转
  181. 9.10 哈希索引
  182. 9.10.1 散列表
  183. 9.10.2 InnoDB存储引擎中的散列算法
  184. 9.10.3 自适应哈希索引
  185. 9.11 小结
  186. 第10章 分区
  187. 10.1 分区概述
  188. 10.2 分区类型
  189. 10.2.1 RANGE分区
  190. 10.2.2 LIST分区
  191. 10.2.3 HASH分区
  192. 10.2.4 KEY分区
  193. 10.2.5 COLUMNS分区
  194. 10.3 子分区
  195. 10.4 分区中的NULL值
  196. 10.5 分区和性能
  197. 10.6 在表和分区间交换数据
  198. 10.7 小结