您好,欢迎访问一九零五行业门户网

浅谈MySQL学习及思考

本博文旨在结合自己看书理解,并借此图进行说明,如有谬误,望大家指正,以共同探讨为目的,交流学习。首先介绍一下架构图的由来:最近看关于mysql方面书籍的一点
 本博文旨在结合自己看书理解,并借此图进行说明,如有谬误,望大家指正,以共同探讨为目的,交流学习。
首先介绍一下架构图的由来:最近看关于mysql方面书籍的一点心得,把文字转化成图片而得,方便理解。
我主要从读、写、底层磁盘三方面进行阐述:
1、读操作:
  我们知道数据在读取的时候,需要从磁盘读到内存中,然后再做相应的操作,而在优化读操作的时候,主要想buffer,cache这些进行优化:
  以上是读操作的一些介绍,接下来是写操作方面的。
2、写操作:
  写操作分为热门数据和普通数据,简而言之就是按照频繁程度进行划分的。然频繁修改的数据可以和非频繁的数据进行分开。
举个例子:
比如我网站每天pv 1000w,而在pv统计的表中,我每次访问就会插入一条数据,一天下来1000w,当然这还不可能是分摊在24小时,就按照10个小时的中高峰期来说,每个小时也是100w条数据,如果我的网站其他表中的跟新的数据每天2w条,相对1000w来说,就是太少了,但是这2w条数据有事比较重要的数据,如果是用户注册、客户购买商品下的订单,他可比记录pv信息更重要吧,这时候问题就出现了:我的热门数据究竟是什么?是pv统计还是订单、注册用户,不言而喻,当然其中一个还是重点数据了,所以为了不让记录pv的数据来影响更重要的数据的更新,我们可以把他分开,如果后面还有主从同步的话,分开后,同步的负载也会降低很多,这样就可以只同步2w条数据,香港空间,而不用考虑那1000w条数据了,服务器空间,进而主数据库的负载也会降低。   现在是把热门数据和普通数据分开了,但是对于高并发的数据库服务器来说,如何抗并发,这到成了一个重要的问题,当然高配服务器,集群用上,包括nosql也用上可一解决这样的问题,如果在设计的时候能使用队列机制,这样不就更好了嘛!(地铁上看到一句广告语:有序方能通畅!)
  当然你可能有更好的方法,香港虚拟主机,可以共同交流。
3、底层磁盘规划:
raid6: radi6技术是在raid5基础上,为了进一步加强数据保护而设计的一种raid方式,实际上是一种扩展raid5等级。与raid5的不同之处于除了每个硬盘上都有同级数据xor校验区外,还有一个针对每个数据块的xor校验区。当然,当前盘数据块的校验数据不可能存在当前盘而是交错存储的,具体形式见图。这样一来,等于每个数据块有了两个校验保护屏障(一个分层校验,一个是总体校验),因此raid6的数据冗余性能相当好。但是,由于增加了一个校验,所以写入的效率较raid5还差,而且控制系统的设计也更为复杂,第二块的校验区也减少了有效存储空间。
而对于热门数据可以使用raid10,这样他的性能和安全性会提高很多;而普通数据可以采用raid5,主要提供安全性,像临时表这样的使用raid0,在性能上发挥巨大的优势。
以上均个人见解,如有疑问,可共同交流学习!
本文出自 “ro の博客” 博客,请务必保留此出处
其它类似信息

推荐信息