数据库索引设计与优化

这篇是计算机中数据库设计类的优质预售推荐《数据库索引设计与优化》。

盖国强、姜承尧、金官丁、叶金荣、童家旺一众国内数据库界巨腕争相作序|支付宝、网易、云和恩墨联DB掌门连袂推荐的造是什么书吗?

编辑推荐

中国数据库界几大势力云集于这本旷世奇作,没读过咋好意思和DBA同行打招呼

蚂蚁(原支付宝)数据库团队资深专家携成长回忆与技术历程倾情献上最优质翻译

本书旨在--通过设计适用于现代硬件的索引,来提升关系型数据库的性能

软硬件发展让数据库性能被忽视,但数据处理量增长更快,全新索引优化设计才能根治随机读速缓慢

内容简介

《数据库索引设计与优化》提供了一种简单、高效、通用的关系型数据库索引设计方法。作者通过系统的讲解及大量的案例清晰地阐释了关系型数据库的访问路径选择原理,以及表和索引的扫描方式,详尽地讲解了如何快速地估算SQL
运行的CPU 时间及执行时间,帮助读者从原理上理解SQL、表及索引结构、访问方式等对关系型数据库造成的影响,并能够运用量化的方法进行判断和优化,指导关系型数据库的索引设计。

《数据库索引设计与优化》适用于已经具备了SQL 这一关系型语言相关知识,希望通过理解SQL 性能相关的内容,或者希望通过了解如何有效地设计表和索引而从中获益的人员。另外,《数据库索引设计与优化》也同样适用于希望对新硬件的引入所可能带来的变化做出更好判断的资深人士。

作译者

Tapio
Lahdenmaki,数据库性能顾问,教授通用索引设计课程。他在IBM公司工作了三十多年,是公司全球课程中有关DB2 (for z/OS)性能相关课程的主要作者。Michael Leach,关系型数据库顾问,已从IBM公司退休,他拥有二十年的应用系统及数据库课程的教授经验。两位作者的文章均被翻译成了多国语言广为传播。他们有关索引设计的方法被成功应用于许多核心系统。

媒体评论

这本写作于2005年的著作,是少数能够穿越十年仍然历久弥新的经典著作之一。译者曹怡倩和赵建伟是支付宝的资深数据库专家,也是童家旺的得意门生,他们的经验和理解为本书增色良多。我在学习过程中也曾经从本书的英文版中获益……
--盖国强(Oracle ACE总监,云和恩墨创始人)

  在工程领域,很多数据库工程师们都积累了对于索引设计与优化的经验,可惜很少有书籍系统地介绍这部分内容,这导致网上存在很多错误的观念。可喜的是本书详细介绍了一种简单、高效的数据库索引设计方法,可让读者对数据库的索引设计快速进阶。--姜承尧(网易杭州研究院数据库技术组负责人)

  书中使用了Oracle、DB2和SQL Server 这三种数据库的大量案例,介绍了它们的异同与各自的特性,绝大部分内容也同样适合于MySQL和PostgreSQL数据库产品。个人认为本书可奉为宝典,是值得DBA们人人收藏的一本书,也适合作为云计算平台研发自动化SQL审核与索引创建组件研发工程师的工具书。

  --金官丁

  本书原著是数据库领域的重要理论大作,几年前童家旺先生就推荐过此书,在《高性能MySQL》一书中也推荐过它,据说他还要求每位徒弟都熟读此书,可见其重要性。 --叶金荣

  记得第一次接触到这本书英文版是在2011年的时候,从这本书中所学到的知识对我之后的工作带来了极大的帮助,使我在应用系统的索引设计及SQL调优上节省了大量的精力且取得了不错的效果。之所以能有如此成效,完全得益于Tapio Lahdenm?ki和Michael Leach两位作者的贡献,是他们将宝贵的经验与智慧与广大读者分享。 --现阿里蚂蚁DBA团队资深专家 知含

  这本书不仅讲述了如何建立三星索引的方法论,更重要的是给出了基于硬件和软件环境下索引设计的量化评估的方法和实践,掌握了这些方法后,你将能够提前量化业务SQL上线运行情况,并指导后期的容量评估。这本书并没有限定具体的商业或者开源的关系型数据库产品,而是讲述通用的理论和方法。

  --现阿里蚂蚁DBA团队资深专家 赵建伟

  本书的目标读者是那些希望理解SQL性能相关内容,并希望了解如何有效设计表和索引的人。通过本书,拥有多年关系型系统经验的读者能够更好地判断新硬件的引入所可能带来的变化。

  --本书英文版读者

  本书提供了一种简单高效的设计索引和表的方法。作者通过大量的举例及案例研究描述了Oracle、DB2和SQL Server优化器是如何决定以何种方式访问数据库的,同时还阐述了快速估算所选择的访问路径的CPU及响应时间的方法。这使得对比不同设计方案的优劣成为了可能,且能帮助你在众多方案中选出最合适的那一个。

  --本书英文版读者

  尽管所有的书中都写了如何正确编写查询、如何组织表,以及应当按照什么规则来决定将哪些列添加至索引上。但我们最需要的是一本能够突破常规的书,真正开始思考为何现今仍有这么多人还会遇到如此多的问题。《数据库索引设计与优化》做到了!

  --本书英文版读者

窝们网站预售的该本书,购买传送门点击打开链接

时间: 2024-10-10 06:49:49

数据库索引设计与优化的相关文章

数据库索引设计的几个常用算法

参考:http://blog.csdn.net/yangbutao/article/details/8372511 B+.B- Tree(mysql,oracle,mongodb)      主要用在关系数据库的索引中,如oracle,mysql innodb:mongodb中的索引也是B-树实现的:还有HBase中HFile中的DataBlock的索引等等. 动态查找树主要有:二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tr

数据库schema设计与优化

原文地址 1. 前言 对于数据库而言,在日常开发中我们主要的关注点有两块,一个是schema的结构设计,另一个就是索引的优化,这两块是影响我们最终系统结构和性能的关键部分,自然也是我们花费精力最多的部分: 本文主要介绍数据库设计中的一般原则和优化手段,包括数据库的一半范式.反范式设计.数据切分.数据路由与合并等等 2. Schema设计的一般性原则 2.1 概述 范式理论是关系型数据库设计的黄金法则,它提供了数据结构化的理论基础,有效地保证了数据的一致性,应该说,关系型数据库就是在范式的基础上才

数据库索引设计

索引的类型:normal:表示普通索引 unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为unique full textl: 表示 全文搜索的索引. FULLTEXT 用于搜索很长一篇文章的时候,效果最好.用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以. 总结,索引的类别由建立索引的字段内容特性来决定,通常normal最常见. 普通索引 添加INDEXALTER TABLE `table_name` ADD INDEX ind

数据库索引原理及优化

一.摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等.为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论. 二.常见的查询算法及数据结构 为什么这里要讲查询算法和数据结构呢?因为之所以要建立索引,其实就是为了构建一种数据结构,可以在上面应用

mysql数据库索引查询一个优化大数据量的实例的分享

我们要访问的表是一个非常大的表,四千万条记录,id是主键,program_id上建了索引.执行一条SQL:select * from program_access_log where program_id between 1 and 4000 这条SQL非常慢.我们原以为处理记录太多的原因,所以加了id限制,一次只读五十万条记录select * from program_access_log where id between 1 and 500000 and program_id between

mysql数据库索引的一些优化建议

1.独立的索引列.索引不能是表达式的一部分,也就是说索引列不能参与任何计算和函数方法(冲当参数)等. 2.不要肆意使用索引.并不是说为where条件之后的所有查询列都加上索引就一定会提升查询性能. 3.当where后面出现两个以上索引列时,应该考虑使用多列索引. 4.注意索引列的顺序(针对多列索引).将选择性最高的放在前面,比如有两个索引,一个是专业一个班级,那显然筛选专业比筛选班级更快,因为专业数据比班级要少很多. 未完待续--

数据库索引的优化及SQL处理过程

想要设计出好的索引,首先必须了解SQL语句在数据库服务器中的处理过程,本文介绍数据库索引设计与优化中几个对索引优化非常重要的概念. 谓词 谓词就是条件表达式. SQL语句的where子句由一个或者多个谓词组成. WHERE SEX = 'M' AND (WHIGHT > 90 OR HEIGHT > 190) 上面这个WHERE子句有三个简单谓词: SEX = ‘M’ WRIGHT > 90 HEIGHT >190 也可以认为是两个组合谓词: WEIGHT > 90 OR H

MySQL 索引设计概要

在关系型数据库中设计索引其实并不是复杂的事情,很多开发者都觉得设计索引能够提升数据库的性能,相关的知识一定非常复杂. 然而这种想法是不正确的,索引其实并不是一个多么高深莫测的东西,只要我们掌握一定的方法,理解索引的实现就能在不需要 DBA 的情况下设计出高效的索引. 本文会介绍 数据库索引设计与优化 中设计索引的一些方法,让各位读者能够快速的在现有的工程中设计出合适的索引. 磁盘 IO 一个数据库必须保证其中存储的所有数据都是可以随时读写的,同时因为 MySQL 中所有的数据其实都是以文件的形式

数据库----->数据库索引----->所以原理以及如何设计并优化索引

1.数据库索引原理: 参见博客 2.如何设计数据库索引以及优化数据库索引: 参见博客