摘自知乎--mysql
允许晚辈叫一声前辈。
从前辈的描述中可以看出前辈对MySQL已经有很好的理解,但我还是想从我这个半知半解的晚辈角度提出几点。
1.系统学习数据库,最要紧的是把基本功打牢,所以《数据库系统概念 原书第六版》是一本不可多得的好书,任何数据库背后的原理基本上都是想通的,其他的都是不同厂商或组织做的改进和优化;
2.如果对MySQL题体系结构、原理性的东西没搞明白,就阅读优化相关的书,我觉得是徒劳,因为原理不懂,何谈优化?所以这里可以推荐两本本书籍:《深入理解MySQL》(人民邮件出版社 Charles A Bell著 杨涛等译)、《深入理解MySQL核心技术》(O'REILLY出版社 中国电力出版社 Sasha Pachev著 李芳等译);
3.对原理性的东西弄彻底后,再加上足够多的操练,现在可以看些优化、高可用、备份与恢复、集群、优化的书,比如前辈提到的《高性能MySQL》(O'REILLY出版社 电子工业出版社 Baron Schwartz等著 王小东等译)、《MySQL性能调优与架构设计》(简朝阳),其他的书籍比如《高可用MySQL——构建健壮的数据中心》(O'REILLY出版社 电子工业出版社 Charles Bell等著 宁青等译)……(欢迎补充)
4.再深层次可以研究下MySQL源码,内部实现机制等等。这里我也不知路向;
5.Linux方面的知识想必前辈已经非常熟练,在此不赘述。
下面贴两个帖子,一个是“知名DBA专家冯春培先生分享自己的职业之路”中的片段,另一个是“如何理解高级MySQL DBA必备素养以及技能”的片段。希望对前辈有所帮助。
hwayw: 现在有人认为学oracle很有出路,有人认为学mysql前途更大,还有人觉得nosql才是未来的数据库趋势,您是怎么看待这样的观点?有关关系型数据库和非关系型数据库的争议,您又怎么看?
biti_rainy: 我学习oracle的时候oracle数据库还为广泛应用,DBA也比较少,算是懵懂的在正确的时间进了正确的门。2001年到2006年真的是DBA学习成长的黄金时期,那时候涌现了一堆有影响力的人。这不是说现在的oracle DBA技能就比那时候的差,而是现在的确算不上黄金时期了,因为oracle已经广泛应用了。但是现在这个时段就是做数据库服务的好时期,而我们那时候想做却不成气候。2006年的时候我招了个应届生叫简朝阳,后来我建议他重点学习mysql,并给予了很大的自由度和计划到他,帮助他成长,后来他写了本书,同时自己成长的非常快,在mysql领域也是非常有影响力。当时之所以建议他学习mysql,是因为oracle的硬件实施整体成本非常高,一用上小型机和SAN存储,oracle费用其实不足total费用的20%。一方面为了公司节约成本考虑,另一方面也感觉到这是未来的趋势,大环境给予了他这个机遇,而我只是提前做出了判断并引导了他。现在由于互联网企业的发展,好像nosql发展的迅猛,这其实不过是在特定场景解决特定问题罢了。我认为未来十年nosql可以取代RDBMS是个伪命题,其实发展到后来两者趋势逐渐一致,nosql想要通用也得具有RDBMS的很多特征,就越长越像了。Google最近出的数据库,其实我看很多特点和概念也类似oracle呢,概念上大家都没什么新鲜玩意,都是在规模上的量变导致质变。而一般用户解决规模问题最简单的是硬件、网络的突破,这更容易带来数据库应用的发展。所以我更主张大家透过现象去看技术的实质,研究各种技术的特点背后的优劣到底是怎么回事,这样才有自己的看法。Oracle、mysql、nosql都是一些具体的数据管理的表现形式,他们主要面对什么客户、解决什么问题、带来什么价值,看透了这些,我们就不会被表象所牵引。当然,我认为管理好数据之后,发掘数据价值是一个很重要的事情。
From ITPUB名人堂第16期支付宝数据平台负责人、知名DBA专家冯春培先生分享自己的职业之路_Oracle数据库管理_ITPUB论坛-it168旗下专业技术社区
黄杉
1) MYSQL 重要参数的作用; 包括副作用哪些呢? 是key_buffer_size、tmp_table_size、sort_buffer_size、innodb_buffer_size、innodb_log_file_size、innodb_flush_logs_at_trx_commit、max_tmp_tables 等等!
2) SHELL,要熟练; shell具体指的是啥,能否举例说明一本书籍,说搞懂了这本书籍,shell就算熟练了?
3) PYTHON , PERL 懂一种。 不懂,看来还得去买一本书,慢慢修炼了。
4) 性能测试要会; 没有弄过,如何做,用啥工具,如何看测试过后的各种测试数据。
5) LINUX 熟练操作; linux操作都包括哪些方面呢?能举几个例子说明一下吗?
From 如何理解高级MySQL DBA必备素养以及技能?_MySQL及其它开源数据库_ITPUB论坛-it168旗下专业技术社区
2013年10月7日16:18:27 补充
还可以看下这个问题我的回答:MySQL 学习路线是怎样的?有哪些学习资料或网站推荐?
摘自知乎--mysql的更多相关文章
- 2016年5月11日摘自知乎的一些Redis大概了解
1. 知乎日报的基础数据和统计信息是用 Redis 存储的,这使得请求的平均响应时间能在 10ms 以下.其他数据仍然需要存放在另外的地方,其实完全用 Redis 也是可行的,主要的考量是内存占用.就 ...
- 有没有不适合使用flex/lex作为词法分析器的语言?(摘自知乎)
本问题及解答摘自本人知乎 http://www.zhihu.com/people/chaos-xie http://www.zhihu.com/question/29922657 感谢知乎网友的回 ...
- 你需要知道的MySQL开源存储引擎TokuDB
在四月份的Percona Live MySQL会议上, TokuDB庆祝自己成为开源存储引擎整一周年.我现在仍能记得一年前它刚创建时的官方声明与对它的期望.当时的情况非常有意思,因为它拥有帮助MySQ ...
- 清华大学计算机系大二 java 小学期考试题(摘自知乎)
public class Main { public void test(Object o) { System.out.println("Object"); } public vo ...
- mysql优化必知(mysql的语句执行顺序)
MySQL的语句执行顺序 MySQL的语句一共分为11步,如下图所标注的那样,最先执行的总是FROM操作,最后执行的是LIMIT操作.其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入 ...
- 你应该知道的 MySQL 的锁
背景 数据库的锁是在多线程高并发的情况下用来保证数据稳定性和一致性的一种机制.MySQL 根据底层存储引擎的不同,锁的支持粒度和实现机制也不同.MyISAM 只支持表锁,InnoDB 支持行锁和表锁. ...
- 你需要知道的MySQL&InnoDB锁都在这里
目录 一.前言 二.锁的类型 2.1 全局锁 2.2 表级锁 2.2.1 表锁 2.2.2 元数据锁(Meta Data Locks) 2.2.3 自增列锁(AUTO-INC Locks) 2.2.4 ...
- MySQL性能调优与架构设计——第 18 章 高可用设计之 MySQL 监控
第 18 章 高可用设计之 MySQL 监控 前言: 一个经过高可用可扩展设计的 MySQL 数据库集群,如果没有一个足够精细足够强大的监控系统,同样可能会让之前在高可用设计方面所做的努力功亏一篑.一 ...
- MySQL性能调优与架构设计——第8章 MySQL数据库Query的优化
第8章 MySQL数据库Query的优化 前言: 在之前“影响 MySQL 应用系统性能的相关因素”一章中我们就已经分析过了Query语句对数据库性能的影响非常大,所以本章将专门针对 MySQL 的 ...
随机推荐
- javascript大神修炼记(6)——OOP思想(继承)
读者朋友们大家好,我们今天这一讲就接着前面的封装继续讲解,今天就是在前面内容上面的升级,OOP思想中的继承,我们就先来解释一下继承到底是什么意思,我们在什么地方会用到继续. 继承就是,后代继续祖先的一 ...
- HashMap+双向链表手写LRU缓存算法/页面置换算法
import java.util.Hashtable; class DLinkedList { String key; //键 int value; //值 DLinkedList pre; //双向 ...
- 【知了堂学习笔记】java 底层容易忽略的知识点
1. java中的关键字 提到关键字,最主要的就是不能用关键字作为标识符,值得注意的有以下几点. ①其中goto与const在java中没有定义,但是也是关键字.这个基本用不到,但是应该有个认知. ② ...
- 机器学习:KNN-近邻算法
一.理论知识 1.K近邻(k-Nearest Neighbor,简称KNN)学习是一种常用的监督学习. 工作机制:给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个的信 ...
- python 与 mongodb的交互---查找
python与mongo数据库交互时,在查找的时候注意的一些小问题: 代码: from pymongo import * def find_func(): #创建连接对象 client = Mongo ...
- 将已有的项目提交到GitHub
1.目的: 将已有的项目提交到GitHub 2.准备工作 2.1 此教程建立在对git有初步的理解上 2.2 此教程之前需准备工作 a.熟悉git的一些基本命令和原理. b.已注册有GitHub账号. ...
- HTTP/FTP压力测试工具siege
HTTP/FTP压力测试工具siege 压力测试可以检测服务器的承载能力.针对HTTP和FTP服务,Kali Linux提供专项工具siege.该工具可以模拟多个用户同时访问同一个网站的多个网页, ...
- DNS隧道工具iodine
DNS隧道工具iodine 在受限制的网络中,如果DNS请求没有被限制,就可以通过DNS请求建立隧道而突破网络限制.iodine是Kali Linux提供的一款DNS隧道工具.该工具分为服务器端i ...
- [ 转载 ] Java基础11--Java总结篇系列:Java泛型
一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: 1 public class GenericTest { 2 3 public static void main(Stri ...
- 【20181030T2】字胡串【分治+双指针】
题面 [正解] 一眼分治 哎\(O(N^2)\)有50分,先敲了 等下,由于最大的数或进去了,所以有\(g(T) \geq f(T)\) 也就是说,我们用\(n \times (n-1) /2\)算出 ...