——「高性能MYSQL」读书笔记(第十三章)
《高性能****MYSQL》
MYSQL经典书籍,常读常新。
IaaS(基础设施即服务) :
IaaS 是用于托管自有的MySQL服务器的云端基础架构。可以在云端购买虚拟的服务器资源来安装运行mysql实例。也可以根据
需求随意配置mysql和操作系统。但没有权限也无法查看底层的物理硬件设备。
DBaaS(数据库即服务) :
mysql 本身作为由云端管理的资源。用户需要收到mysql服务器的访问许可才能访问。也可以配置一些mysql 选项,但没有权限
去控制或者查看底层的操作系统或者虚拟服务器实例。其中一些服务器并非真的使用mysql,但它们能兼容mysql协议和查询语句。
云是一个部署平台,而不是一种架构。架构会受平台影响,但平台和架构明显不同。
1.云的优点,缺点和相关误解
优点:
1.云是一种将基础设施外包出去无需自己管理的方法
2.云一般是按照即用即付的方式支付
3.随着供应商发布新的服务和成本降低,云提供的价值越来越大
4.云能够帮助你轻松的准备好服务器和其他资源
5.云代表了对基础设施的另外一种思考
缺点:
1.资源是共享并且不可预测的,实际上你可以获得比你支付的更多的资源
2.无法保证容量和可用性
3.虚拟的共享资源导致排查故障更加困难
误解:
1.云天生具有更好的可扩展性
2.云可以自动改善甚至保证可用性
3.云是唯一提供[...]的东西
4.云是一个'银弹'
IO实际上是两种存储器的交换:非永久存储器(RAM)和持久化存储(磁盘)。
2.数据库即服务(DBaaS)
Amazon的 RDS :系统管理职责完全由amazon来承担。你没有访问 EC2 机器的权限,只有登入mysql的访问凭证。你可以创造数据库,插入数据等。
你并没有被限制,可以将数据导出来转移到其他地方。
为了防止你检查或者干涉amazon对服务器或主机实例的管理,rds做了一些限制。例如一些权限的限制。你不能利用select into outfile,load data infile
或其他为自己赋予更高权限。amazon 通过诸如在系统表上设置触发器等方法来进行阻止,并且作为服务条款,你要同意不会试图绕过这些限制。
1. 云的优点、缺点和相关误解
-
云的优点
-
云的缺点
-
云的误解
2. MySQL 在云端的经济价值
-
云托管比较适合尚处于初级阶段的企业,或那些持续接触新概念并且本质上是以适用为主的企业。
-
云的另一种用途是运行不是很重要的基础设施,例如集成环境、开发测试平台、评估环境等。
-
云托管对于长期项目而言可能会更加昂贵。可以使用每美元的业务交易数来衡量是否划算。
3. 云中的 MySQL 的可拓展性和高可用性
-
云的自动拓展——根据需求的增加或减少来启动或关闭实例,对于 Web 服务器这样的无状态部分是可行的,但是对于数据库服务器这样有状态的则很难做到。
-
因为数据库通常是一个应用系统中主要或唯一有状态的并且持久化的组件,所以把应用服务迁移到云端则是很普遍的事情,因为除数据库之外的所有部分都可以从云中收益。
4. 四种基础资源
- MySQL 需要四种基础资源来完成工作:CPU、内存、IO 以及网络。在云平台中,这四种基础资源有三种是受限的:
5. MySQL在云主机上的性能
-
通常,由于较差的 CPU、内存以及 IO 性能,在类似 AWS 这样的云托管平台上 MySQL 所表现出来的性能并不如在其他地方好。
-
有一些工作负载,在云中可能受到严重影响:
-
MySQL 的 IO 需求会受系统内存大小的影响。当有足够内存时,可以从缓存中读取数据,减小读和写操作的 IO。也可以改变应用和服务器来减少 IO 需求,考虑周到的逻辑和物理数据库涉及对于减少 IO 请求大有帮助,应用程序优化和查询优化也一样。这是减少 IO 最有效的手段。
6. MySQL 数据库即服务 (DBaaS)
-
已经有公司将数据库本身作为云资源,称之为数据库即服务,这意味着可以在一个地方使用云中的数据库,而在其他地方运行真正的服务。
-
在 Amazon 的关系数据库(RDS)上进行的开发比其他任何一个 DBaaS 提供商都多。Amazon RDS 不仅仅是一个兼容 MySQL的服务:它事实上就是 MySQL。
-
Amazon RDS 的一些优点:
-
Amazon 中的一些缺点: