高性能mysql书怎么样 mysql性能调优书籍

高性能mysql 第三版怎么样在MySQL社区,这是一本重量级的书,我不知道出版社是怎么挑选译者的 , 但是很明显 , 我个人的意见,这次挑选非常的失败 。书中98页倒数第4行的"binary search"的翻译(二进制搜索)已经道出了一切 , 但凡学过计算机的,我估计都不能做出这样的翻译 。在计算机领域 , 二进制是一个专门的术语,有特定的含义 。我不仅怀疑译者根本没学过"binary search"算法,以至于只能按字面翻译,我甚至怀疑他们连“二进制”的含义可能也不懂,找这样的人来翻译,真是天大的笑话 。再举一个术语的翻译“secondary index” , 书中的译法是“第二索引” , 暂且不论惯用的“二级索引”是否是一个标准的译法 , 假如在主键之外,还有B,C两个索引,如果B叫“第二索引”,那么C就应该叫“第三索引”了?为什么C也叫“第二”呢,难道是并列第二?“第二”在汉语中是一个意思很明确的词,你当然可以说“第二”也能表示“二级”的意思,这种牵强的脱离通用语义的翻译真是对翻译标准“信雅达”中“达”字的讽刺 。关于“达”我们还可以找一个例子,介绍coverring index的部分,译文第96页,原文第124页 。原文是“For example,the sakila.actor table uses InnoDB and has an index on last_name, so the index can cover queries that retrieve the primary key column actor_id, even though that column isn’t technically part of the index”,译文是“例如,sakila.actor表适用了InnoDB并且在last_name上有索引,因此,即使该列不是索引的一部分,索引页可以覆盖取得主键actor_id的查询”,原文读来没有任何的歧义,译文却变了样,第一遍读的时候,你能分辨出“即使该列不是索引的一部分”中的“该列”是指代的“last_name"呢?还是后面出现的"actor_id”呢?将代词放在指代的名词之前出现,这绝对是对人的智力的挑战,即便是诗歌,我也没见汉语中有多少这样的用法,遑论技术性文字 。在原文中"that column"这个代词出现在了"actor_id"之后 , 不知道为什么在译文中 , 代词就钻到了指代的名词之前 。如果可以抛开“达” , 还要争辩词的译法是“见仁见智”的 , 那么对“信”的违背则已经使这本重量级巨著的翻译失去了最基本的存在价值 , 随便举两个例子: 1. 4.6查询提示优化对HIGH_PRIORITY的描述,译本第152页,原书第195页,原文是“HIGH_PRIORITY tells MySQL to schedule a SELECT statement before other statements that may be waiting for locks, so they can modify data.”,译文是“HIGH_PRIORITY告诉MySQL将SELECT语句放在其他语句的前面,以便它修改数据”,原文中的“so they can modify data"变成了"以便它可以修改数据",复数形式的they变成了单数形式的"它",这个改变虽然细微,但直接影响了这个位置的代词所指代的主语,这个代词到底是"SELECT statement"呢?还是"other statements that may be waiting for locks"?原文中当然是其他能modify data的statements,而到了疑问中,变成了"SELECT statement",问一个菜鸟级的问题,select statement能modify data吗? 2. 还是4.6查询提示优化 , 对DELAYED的描述,译文第152页,原文第196页 。原文是"It lets the statement to which it is applied return immediately and places the inserted rows into a buffer, which will be inserted in bulk when the table is free",译文是"应用了这个提示的语句会立即返回并将待插入的列放入缓冲区,在表空闲的时候再执行插入",粗看没什么问题 , 细看问题一大堆 。2.1 在原文中,主语是it,指代的是"DELAYED"这个hint,到了译文中,主语从"提示"本身变成了"应用了这个提示的语句",于是在原文中的"delayed"这个hint一方面使语句立即返回,另一方面使MySQL在后台处理被缓存的数据两层意思变成了语句一方面返回,另一方面“将待插入的列放入缓冲区”,到底是"DELAYED"使数据被插入buffer,还是应用了"DELAYED"的语句使数据被插入了buffer , 区别虽然微妙,但区别就是区别,译文的意思与原文已差之毫厘,谬以千里 。2.2 原文中"which will be inserted in bulk..."是一个被动语态,指数据被插入,主语没有明确指出,在上下文环境中当然是数据库;而到了译文中,“在表空闲的时候再执行插入”是一个主动的语态,“谁”执行了插入?如果和上句连起来 , 很容易理解成“应用了这个提示的语句在表空闲的时候再执行插入” , 这不是扯淡吗?当然 , 稍微有点数据库常识的人都不会这样理解 , 但原文原本语义清晰,翻译过来却主语混乱,实在令人难以接受 。2.2 在原文中的"rows",一个复数形式的词,到了译文中 , 变成了"列",假如说复数变单数还能接受,把"row"翻译成"列"真是天才的创举 。2.3 原文中"will be inserted in bulk when ..."明确指出了insert的方式是"in bulk",但是这个信息在译文中丢失了 。类似的问题简直处处可见,原文的文字简洁清晰,非常容易理解,但我读到的译文却非常难以理解 , 更可恨的是 , 原文中大量的信息被扭曲,抛弃 。“信雅达”这三标准没有一个做到 。我个人的总结是 , 这个译本的水平跟中国足球的水平一样,能把球停在百米开外,一个字,糙 。客观地说,这本书至少将MySQL优化的知识在中国的传播门槛大大降低,但咱不是黄莺,不会唱赞歌,既然是书评 , 就是要来挑刺的,看不到刺,容不得刺,电子工业永远没有赶上O'Relly的机会,中国的技术书籍永远都只能是菜鸟水平 。
荐书-MySQL是怎样运行的 推荐一个讲解MySQL的好书--MySQL是怎样运行的,作者是小孩子4919,这是目前为止笔者读过的MySQL方面最好的书.
笔者之前翻看过(MySQL技术内幕:InnoDB存储引擎)和(高性能MySQL),前者对InnoDB的技术要点讲解的很深.后者则是流水账式的介绍MySQL的各个模块. 彼时笔者的背景知识极为有限:
所以两者都不适合.笔者需要的是这样的一本书
很幸运,笔者发现了 MySQL是怎么运行的 ,它达成了上述需求的90%.如果你跟笔者有类似的问题,那么读下这本书吧!
推荐大家重点阅读下面章节
从此跟乱码say goodbye
了解记录在内存中的结构,B 树的演变由来,以及为什么要使用索引--没有索引就要扫全表呀!
缓冲池提高了性能,也带来了问题.
做完的事情说什么也不能丢失.
第一次听说脏写和Read View.看完之后才知道事务隔离级别的实现差异.
祝大家有一个愉快的阅读体验~
深入浅出mysql和高性能mysql哪本好限流算法目前程序开发过程常用的限流算法有两个:漏桶算法和令牌桶算法 。
漏桶算法
漏桶算法的原理比较简单,请求进入到漏桶中,漏桶以一定的速率漏水 。当请求过多时,水直接溢出 。可以看出 , 漏桶算法可以强制限制数据的传输速度 。如图所示,把请求比作是水滴,水先滴到桶里,通过漏洞并以限定的速度出水,当水来得过猛而出水不够快时就会导致水直接溢出,即拒绝服务 。
图片来自网络
漏桶的出水速度是恒定的,那么意味着如果瞬时大流量的话,将有大部分请求被丢弃掉(也就是所谓的溢出) 。
令牌桶算法
令牌桶算法的原理是系统以一定速率向桶中放入令牌,如果有请求时,请求会从桶中取出令牌 , 如果能取到令牌,则可以继续完成请求 , 否则等待或者拒绝服务 。这种算法可以应对突发程度的请求,因此比漏桶算法好 。
【高性能mysql书怎么样 mysql性能调优书籍】图片来自网络
漏桶算法和令牌桶算法的选择
两者的主要区别漏桶算法能够强行限制处理数据的速率,不论系统是否空闲 。而令牌桶算法能够在限制数据的平均处理速率的同时还允许某种程度的突发流量 。如何理解上面的含义呢?漏桶算法,比如系统吞吐量是 120/s,业务请求 130/s,使用漏斗限流 100/s,起到限流的作用 , 多余的请求将产生等待或者丢弃 。对于令牌桶算法,每秒产生 100 个令牌,系统容量 200 个令牌 。正常情况下,业务请求 100/s 时,请求能被正常被处理 。当有突发流量过来比如 200 个请求时,因为系统容量有 200 个令牌可以同一时刻处理掉这 200 个请求 。如果是漏桶算法,则只能处理 100 个请求,其他的请求等待或者被丢弃 。
畅销10年的数据库技术图书,当之无愧的霸主!还有谁?《高性能MySQL》
《高性能MySQL(第3版)》中文版自从2013年出版至今,已畅销10年,销量近20W册 , 豆瓣评分9.3 。
《高性能MySQL》的每一章均别具匠心,力求理论与实践的精确平衡,且布满无价之宝 , 有时甚至越过MySQL舞台,完全适用于任一数据库 。
《高性能MySQL第3版》epub下载在线阅读,求百度网盘云资源《高性能MySQL(第3版)》(施瓦茨 (Baron Schwartz))电子书网盘下载免费在线阅读
资源链接:
链接:
提取码:ani8
书名:高性能MySQL(第3版)
作者:施瓦茨 (Baron Schwartz)
译者:宁海元
豆瓣评分:9.3
出版社:电子工业出版社
出版年份:2013-5-1
页数:764
内容简介:
《高性能mysql(第3版)》是mysql 领域的经典之作,拥有广泛的影响力 。第3 版更新了大量的内容,不但涵盖了最新mysql 5.5版本的新特性,也讲述了关于固态盘、高可扩展性设计和云计算环境下的数据库相关的新内容,原有的基准测试和性能优化部分也做了大量的扩展和补充 。全书共分为16 章和6 个附录,内容涵盖mysql 架构和历史 , 基准测试和性能剖析 , 数据库软硬件性能优化,复制、备份和恢复,高可用与高可扩展性,以及云端的mysql 和mysql相关工具等方面的内容 。每一章都是相对独立的主题 , 读者可以有选择性地单独阅读 。
《高性能mysql(第3版)》不但适合数据库管理员(dba)阅读,也适合开发人员参考学习 。不管是数据库新手还是专家,相信都能从本书有所收获 。
作者简介:
关于作者
Baron Schwartz 是一位软件工程师,居住在弗吉尼亚州的Charlottesville,网络常用名是Xaprb,这是按照QWERTY 键盘的顺序在Dvorak 键盘上打出来的名字 。在不忙于解决有趣的编程挑战时 , Baron 会和他的妻子Lynn 以及小狗Carbon 一起享受闲暇的时光 。他有一个软件工程方面的博客,地址是
Peter Zaitsev 曾经是MySQL AB 公司高性能组的经理,目前在运作mysqlperformance
blog.com 网站 。他擅长于帮助那些每天有数以百万计访问量的网站的管理员解决问题,这些网站通常需要几百台机器来处理TB 级的数据 。他常常为了解决一个问题而不停地升级硬件和软件(比如查询优化) 。Peter 还经常在各种会议上演讲 。
Vadim Tkachenko 曾经是MySQL AB 公司的性能工程师 。作为一名在多线程编程和同步方面的专家,他的主要工作是基准测试、性能剖析 , 以及找出系统的性能瓶颈 。他还在性能监控和调优方面做了一些工作,使得MySQL 在多核机器上有更好的可扩展性 。
译者简介
宁海元 有超过十年的数据库管理经验,从最初到SQL Server 2000到Oracle到MySQL , 擅长数据库高可用架构,性能优化和故障诊断 。2007年加入淘宝,带领淘宝DBA团队支撑了淘宝业务的快速增长,完成了数据库的垂直拆分、水平拆分 , 迁移到MySQL体系等主要工作 。目前专注于无线数据领域 。网络常用名NinGoo,个人博客:
周振兴 毕业于北京师范大学数学系 , 09年加入淘宝数据库团队负责MySQL运维管理工作,有丰富的MySQL性能优化、Troubleshooting经验,对MySQL主要模块的实现和原理有深入的研究,经历淘宝MySQL实例从30到3000的发展,对系统架构、高可用环境规划都有深入理解 。个人博客:
彭立勋 2010年大学毕业后加入阿里巴巴运维部 。作为一名MySQL DBA,在运维MySQL的过程中,对MySQL和InnoDB的一些功能和缺陷就进行了补充,编写了多主复制和数据闪回等补丁 。目前在阿里集团核心系统研发部数据库组,专注于MySQL数据库相关的开发工作 。后来一些补丁被MySQL之父Mony看中,成为MariaDB提交组(Maria-captains)成员,并且把多主复制,线程内存监控等补丁合并到了MariaDB 10.0版本 。
翟卫祥 毕业于武汉大学,研究生阶段从事数据库相关研究 。毕业后就职于阿里巴巴集团数据库技术团队至今,主要负责阿里内部MySQL代码分支维护,包括MySQL Bug Fix及新特性开发 。对MySQL内核有一定的研究 。
刘辉 2008年毕业于西安电子科技大学计算机系,硕士学位 。2011年加入阿里巴巴集团数据库技术团队,花名希羽,MySQL内核开发工程师 。
高性能mysql书怎么样的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于mysql性能调优书籍、高性能mysql书怎么样的信息别忘了在本站进行查找喔 。

    推荐阅读