《MySQL DBA修炼之道》——第1章 理解MySQL 1.1MySQL 介绍

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 本节书摘来自华章出版社《MySQL DBA修炼之道》一书中的第1章,第1.1节,作者:陈晓勇,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 第1章 理解MySQL 本章将介绍MySQL的一些常识,以及目前MySQL的发展现状。

本节书摘来自华章出版社《MySQL DBA修炼之道》一书中的第1章,第1.1节,作者:陈晓勇,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

第1章 理解MySQL

本章将介绍MySQL的一些常识,以及目前MySQL的发展现状。然后简要说明MySQL的基础架构、存储引擎、运行机制,以及工作中应该如何使用MySQL,为后面章节的学习做个铺垫。

1.1 MySQL介绍

1.1.1 应用领域和适用场景
MySQL是目前世界上最流行的开源关系数据库。在国内,MySQL大量应用于互联网行业,比如,大家所熟知的百度、腾讯、阿里、京东、网易、新浪等都在使用MySQL。搜索、社交、电商、游戏后端的核心存储往往都是MySQL,有的具有上千台甚至几千台MySQL数据库主机。可以说,支撑互联网公司日常运转的主要数据库就是MySQL。近年来,随着业务的发展,互联网公司产生了许多成熟的架构和技术,这也促使MySQL不断变得更加成熟和稳健。但MySQL的应用并未局限于互联网应用,许多软件开发商也把MySQL集成到了自己的产品中,这样一来,传统行业的大公司也都可以在企业内部大量使用MySQL存储企业数据了,包括政府信息系统,同样也在大量使用MySQL数据库。
MySQL的定位是通用的数据库,各种类型的应用一般都能利用到MySQL存取数据的优势。业内生产实践也证明,MySQL更适合中小型数据库、OLTP业务,以目前的软硬件产品水平来看,如果单机数据超过几个TB将难以高效利用MySQL。
MySQL可以作为传统的关系型数据库产品使用,也可以当作一个key-value产品来使用,由于它具有优秀的灾难恢复功能,因此相对于目前市场上的一些key-value产品会更有优势。
我们所说的MySQL更适合OLTP业务、中小型数据库,并不是说MySQL仅限于此,数据的存储往往是一个架构问题,如果配合架构,MySQL也是可以存储海量数据的。海量数据没有一个明确的标准,对于MySQL来说,我们可以简单地认为海量数据是指单个实例难以处理的几十亿以上的数据。不过,MySQL对于海量数据的分析就不擅长了,你可能还需要其他产品来协助解决这方面的问题。一般而言,中小型公司最佳的选择仍然是MySQL,毕竟在这类公司里,海量数据并不常见。下面让我们来看看部分知名互联网公司的MySQL主机规模,一些公开资料显示如下。
Facebook 2008年有10 000台服务器,其中包括1800台MySQL服务器,到2013年已经突破了20万台服务器,按40?∶?1计算,MySQL服务器至少也有五千台了。
Twitter 早在2011年就有2000~4000台服务器,绝大部分数据后端的持久化存储都是MySQL服务器。
对于国内的几大互联网公司,如阿里、百度、腾讯,依据公开的信息,它们均有千台以上MySQL服务器的规模。
这些大型互联网公司都注重使用MySQL,而且往往也在内部维护了一个MySQL的分支,同时它们也积极参与到MySQL社区,促使MySQL不断改进。
1.1.2 为什么那么多公司和机构选择使用MySQL
它们选择使用MySQL的主要原因有以下两点。
低成本、高效能。
处于起步阶段的团队、小公司需要一个开放的系统来适应发展的需要。
互联网公司,特别是处于起步阶段的公司,需要一个低成本的系统来构建服务,从而可以把更多的资金用于业务的扩张。LAMP(其中的“M”指的就是MySQL)的组合已被广泛应用——目前世界上的大部分网站使用的都是LAMP(或者LNMP)组合。由于它是免费的,LAMP自然就成了第一选择,一般而言,选择成熟可靠、使用人数广泛的产品,公司的技术风险也会大大降低。同时MySQL是一个开放的系统,源代码开放,社区成熟活跃,在公司发展壮大的过程中,可以不断从外部获取成熟的思想和解决方案。可以说MySQL已经构建了成熟的生态圈,使用它的人往往能得到许多益处,而且相对于目前市场上的其他产品,MySQL也具备许多优势。
一些公司出于节省成本和扩展性的考虑,尝试把某些业务从商业数据库迁移到MySQL上,比如阿里,由于数据库集群的规模巨大,传统的基于小型机和高端的存储架构难以扩展,且支出成本庞大,所以把大部分业务逐步迁移到PC服务器的MySQL集群上,成功地降低了成本。
1.1.3 MySQL的优势是什么,它解决了什么问题
MySQL是一个轻量级的通用关系型数据库,具有稳定、易安装、易使用、高性能等特点,可配合架构进行扩展。它的安装包不大,百MB级别,安装简单方便,入门也很简单,而一些商业化的关系型数据库产品往往安装包庞大,且配置使用复杂,需要开发人员或DBA花费几倍的时间去掌握产品的使用。
MySQL起初也有很多Bug,而且不太稳定,但经过十多年的发展,目前的MySQL(5.0/5.1)已经很稳定了。新的5.5/5.6/5.7也发布了GA版本,正在持续完善中,截至2015年年底,我们可以看到MySQL 5.1/5.5已经大量应用于生产环境了。
此外,MySQL也是一个高性能的产品,它不仅适用于中小型公司,还能稳定高效地处理大数据。业内存在一种误解,认为MySQL的扩展性不好,若超过一定的数据量时,性能就会下降。其实这更多的是一个架构问题,配合成熟的架构,比如在应用层切分数据,MySQL的扩展性就不再是什么问题了,而且很多数据是能够分片到各个MySQL节点的。Facebook、Twitter、Google等都在大量使用MySQL存储海量数据。
一些人倾向于用NoSQL产品来存储数据,其实,NoSQL产品,特别是一些key-value单机产品,相对于MySQL来说并没有什么优势。MySQL同样可以把数据存储为key-value的形式,并且,NoSQL的产品还不是很稳定,一旦数据丢失就可能会导致很严重的损失,又往往因为数据模型简单,所以应用范围狭小。MySQL成熟稳定且拥有丰富的数据类型,它的关系模型可以满足项目不断增加的商业需求。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
监控 算法 关系型数据库
DBA很忙—MySQL的性能优化及自动化运维实践
作者:王辰 来自:高效运维(ID:greatops) DBA的日常工作 首先,我们来看看DBA的具体工作,我觉得 DBA 真的很忙:备份和恢复、监控状态、集群搭建与扩容、数据迁移和高可用,这是我们 DBA 的功能。
5123 0
|
4月前
|
SQL 关系型数据库 MySQL
完美,阿里DBA骨干团队编写的792页MySQL调优笔记真香
这个世界是由问题组成的,理想的状态和实际状态之间的差异造成了问题。国家领导解决人民生活幸福的大问题,公司的总经理解决盈利的问题,而本书只想解决MySQL数据库性能这么一一个“小问题”。
|
4月前
|
运维 关系型数据库 MySQL
MySQL DBA的必备参考,两位数据库资深专家呕心沥血之作
互联网发展至今,开源软件已经深入人心,并且受到广泛的支持和响应,很多公司在使用开源软件的同时也输出了一些好的开源产品。MySQL 作为当今世界.上最受欢迎的开源数据库产品之一,在很多互联网企业里起到了不可或缺的作用。由于MySQL的诸多特性,比如开源免费、灵活、轻量简单且越来越多的企业开始使用MySQL,在业界诞生了一大批相关从业者,他们研究MySQL的原理,探讨MySQL的架构,完善MySQL的运维,丰富MySQL的工具,促进MySQL的发展,我们称这些人为MySQL DBA,而本人也是其中之一,深感荣幸。
|
5月前
|
关系型数据库 MySQL 数据库
啥?阿里DBA团队总监把MySQL 性能调优 金字塔,写进了800页笔记?
MySQL之所以能成为现在最流行的开源数据库,这跟它的开放性、包容性是分不开的。它的入门门槛低到用一条命令就能把MySQL安装起来,你能在程序开发的入门资料中很容易就找到MySQL的配套使用教程,你可以不用付任何费用就能在自己的环境中部署起来对外承载业务。
|
5月前
|
运维 关系型数据库 MySQL
GitHub无抗手!MySQL DBA攻坚指南一出,阿里数据库专家都解脱了
大家可能并不觉得,数据库其实非常重要,每个业内巨头,每个成熟的互联网产品都有多个数据库系统,能保证大量并发场景下不出错,并非易事。尤其是银行、电商、电信、电力、航空等实时交易重要的环境中,可靠的数据库是重中之重,稳定压倒一切。
|
8月前
|
关系型数据库 MySQL 程序员
卷?阿里DBA首次公开MySQL调优笔记,竟让GitHub的程序员集体叫好
对于工作了两三年的技术人员来说,在实践上已经有了比较多的积累,解决过很多问题——可能通过sys schema查询事务锁等待解决了系统的并发问题;通过设计读写分离架构扩展了应用的读性能线性扩展问题 但是作为求知欲强的技术人员,我们急切地希望知其所以然,了解MySQL到底是怎么设计的,以及为什么这样设计,读写分离架构适应的场景有哪些?什么时候建议用分库分表?等等。
69 0
|
9月前
|
SQL 运维 NoSQL
阿里大牛撰写"星耀级"MySQL DBA工作笔记!颠覆我对数据库的认知
MySQL是开源数据库方向的典型代表,它拥有成熟的生态体系,同时在可靠性、性能、易用性方面表现出色,它的发展历程见证了互联网的兴衰与成长。 在 DeveloperWeek 上曾发起一个调查,超过 3/5 的受访者使用 SQL,其中MySQL 以 38.9% 的使用率高居榜首,其后依次是 MongoDB(24.6%)、PostgreSQL(17.4%)、Redis(8.4%)和 Cassandra(3.0%)。毫无疑问,以MySQL为主的开源技术生态正变得越来越流行。同样的,对我们掌握MySQL也迫在眉睫。那么,接下来,就让小轩带领大家来深入了解MySQL吧!
|
10月前
|
存储 人工智能 缓存
ChatGPT会取代MySQL DBA吗?(译自Percona,文末投票)
ChatGPT是目前科技界最热门的话题,有人甚至说ChatGPT已经通过了谷歌的3级编程面试。我想知道,这是否意味着ChatGPT也准备好取代MySQL DBA?答案是否定的,让我来告诉你为什么。
|
11月前
|
SQL 关系型数据库 MySQL
一个奇怪的MySQL慢查询,打懵了不懂业务的DBA!
最近,开发人员需要定期的删除表里一定时间以前的数据,SQL如下: mysql > delete from testtable WHERE biz_date <= '2017-08-21 00:00:00' AND status = 2 limit 500\G 前段时间在优化的时候,我们已经在相应的查询条件上加上了索引,如下: KEY `idx_bizdate_st` (`biz_date`,`status`) 但是实际执行的SQL依然非常慢,为什么呢,我们来一步步分析验证下。
|
SQL 存储 运维
FAQ系列 | MySQL DBA修炼秘籍
FAQ系列 | MySQL DBA修炼秘籍