前言
可能影响到数据库性能的几个点,其一就是服务器硬件,也是本节要说的CPU与可用内存。
引入
当热数据超过可用内存大小,MemCache存储引擎缓存层容易失效(当缓存大量失效时,容易产生大量的网络传输),从而影响服务器的性能。
当出现这类I/O系统瓶颈时,我们就需要升级I/O子系统,来增加更多的内存,网络与I/O资源就是对我们数据库性能影响的第二个硬件因素。
CPU选型
采购人员经常性会向我们请教需要买什么参数的CPU硬件等等。
我到时想什么都买最好的!可是成本这种东西,只能让你选其一
那么,我们的CPU是要频率还是数量呢?
首先我们应该知道我们的应用是否是CPU密集型?
其实大多数时候我们要选择更好的而不是更多的
对于目前版本的MYSQL,不支持多CPU对同一SQL并发处理
当然,我们也要看看系统的并发量如何?(并发是纳秒级别的)
衡量数据库处理能力的指标 QPS:同时处理SQL的数量(这里是每秒)
MYSQL目前被大量应用于Web类的应用中,这类应用的并发量也是非常大的,则其CPU核心数量就比频率重要同时也要考虑所使用的MYSQL的版本(高版本对多核CPU的支持较好、起码你可以放心使用16核或者32核的CPU)
当然,如果你想要使用多核CPU的话,还需要使用MYSQL最新版本,这样才能做到最好的性能。
关于内存
MYSQL本身是单线程的
- 内存的大小直接影响MYSQL的性能
- 把数据存储到缓存中,可以大大提高数据的性能
常用的MYSQL存储引擎
MyISAM 将索引存储到内存中,数据则放在操作系统中
InnoDB 则是同时在内存存储索引和数据,进而提高数据库运行效率
内存配置的提示
1、内存虽然越多越好,但是对性能的影响是有限的,并不能无限的增加性能
2、当然,多余的内存,可以增加操作系统等其他服务的性能
缓存对读有益处,同时对写操作也有益处
CPU -》 内存 -》 磁盘
缓存可以对写操作进行延缓,将多次写入变成一次写入(Eg:浏览量计数器)
如果本文对你有所帮助,欢迎关注本人公众号,谢谢。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。