MyException - 我的异常网
当前位置:我的异常网» MySQL » mysql优化之影响mysql性能要素一

mysql优化之影响mysql性能要素一

www.MyException.Cn  网友分享于:2018-03-30  浏览:0次
mysql优化之影响mysql性能因素一
mysql优化之影响mysql性能因素一



    web服务器可以进行横向扩展,每台服务器只要配置相同就可以进行横向扩展,理论上可以无限制的增加web服务器增加mysql的访问性能。数据库服务器才是大数据量访问时延迟高效率低的主要原因,没有稳定的数据库就没有稳定的访问。

    影响数据库因素主要因素主要有一下几点:


    1.sql查询速度

    2.网卡流量

    3.服务器硬件

    4.磁盘IO

    以上因素并不是时时刻刻都会影响我们的数据库性能,而就像木桶效应一样:如果其中一个因素严重影响性能,那么整个数据库性能就会严重受阻。另外,这些影响因素都是相对的,例如:当数据量并没有达到百万千万这样的级别,那么sql查询速度也许就不是个重要因素,换句话说,你的sql语句效率适当低下可能并不影响整个效率多少,反之,这种情况,无论如何怎么优化sql语句,可能都没有太明显的效果。 因此,知道哪些影响因素会直接导致哪些现象产生,是至关重要的经验,就像福尔摩斯一样,通过现象看本质。接下来我们对不同的现象与影响因素做一一对应的总结。

一主多从服务器集群的缺陷: 没有任何主从复制的高可用组件,一旦出现问题就只能手动进行主从复制的切换。耗时又费力。

1.超高的QPS和TPS

什么是QPS:每秒钟查询量。如果每秒钟能处理100条查询sql语句,那么QPS就约等于100 。
什么是TPS:每秒钟事务处理的数量。

    造成的风险:效率低下的SQL。
访问量暴增的情况下,sql语句的优化显得最直接最有效。由于现在的mysql不支持多cpu并发运算,即每条sql只能由一条cpu执行。这也就意味着,如果我们想提高单挑sql的执行速度,无法通过增加cpu的方式达到效果。


2.大量的并发

风险:大量的并发:同一时间处理请求的数量 大量的并发就会导致数据库连接数占满 。对于数据库而言,所能建立的连接数是有限的,mysql中max_connections参数默认值是100, 大量的并发就会导致数据库连接数占满 。

3.超高的CPU使用率
风险:因CPU资源耗尽而出现宕机



4磁盘IO

风险:磁盘IO性能突然下降。

数据库的主要瓶颈, fasionIO高速磁盘, SSD固态硬盘比较好 。
其他大量消耗磁盘性能的计划任务。
不要再主数据库上进行数据库备份 可能会导致数据库性能急剧下降。




5.网卡流量
风险:网卡IO被占满(100Mb/8=100MB)

如何避免无法连接数据库的情况:

减少从服务器的数量。从服务器都要从主服务器上复制日志,所以,从服务器越多,网络流量越大。

进行分级缓存。前方大量缓存突然失效会对数据库造成严重的冲击。

避免使用“select * ”进行查询。

离业务网络和服务器网络


6.大表
什么样的表可以称为大表
1. innodb存储引擎时的那个表的数据量超过千万行
2. 表的数据文件超过10G (数据是相对的)。
3. 表数据文件巨大,表数据文件超过10G

造成的影响主要就是

慢查询:

很难在一定的时间内过滤出所需要的数据

DDL操作

DDL(数据定义操作) 修改表就会长时间锁表,造成主从延迟,如建立索引 。
修改表的结构就会长时间的锁表 造成主从延迟
(主库完成=> 日志=> 从库完成)

风险:

MySQL版本<5.5建立索引会锁表,>=5.5虽然不会锁表但会引起主从延迟。

如何处理数据库中的大表分库分表:

    1.把一张大表分成多个小表

分表主键的选择。如订单号,订单地区等,好的分表主键选择,会对后期的扩展更有利
分表后跨分区数据的查询和统计。
分库分表需要消耗大量的人力物力,而且要冒着影响业务的风险,所以要慎重。

    2.历史数据归档
大表的历史数据归档,可以减少对前后端业务的影响。

归档时间点的选择。例如订单表,可以对一年前的数据进行归档;日志类的数据,对一个月前的数据归档即可。
如何进行归档操作。


7.大事务
事务是数据库系统区别于其他一切文件系统的重要特性之一
事务是一组具有原子性的SQL语句
事务特性:原子性,一致性,隔离性,持久性

原子性:
一个事务必须被视为一个不可分割的最小工作单元。整个事务要么全部提交成功,要么全部失败。
例如:银行转账,我向你汇钱,要么成功,我的账户减少1000元,你的账户增加1000元。要么失败,我不减,你也没有增加。不能出现:我的账户减少1000,这时候断电了,你没收到。

一致性:
事务将数据库从一种一致性状态转换到另一种一致性状态,在事务开始之前和事务结束之后数据库中的数据的完整性没有被破坏例如:银行转账,转来转去,总和应该保持不变。在我看开,一致性其实就是宏观上强调了一下原子性。只要原子性原则没有被破坏,应该就总是一致的。

隔离性:
一个事务对数据库中的数据进行修改,在未提交完成前对其他事务是否可见的。
隔离性有四种级别:

未提交读(READ UNCOMMITED)事务可以读取未提交的数据 =>脏读。
已提交读(READ COMMITED)事务只能读取已提交的数据
可重复读(REPEATABLE READ)同一个事务中多次读取的数据是一致的
串行化(SERIALIZABLE)读取的每一行都加锁
隔离性由低到高 并发性由高到低
查看数据库的隔离级别:show variables like “%iso%”;

持久性

一旦事务提交,则其所做的修改就会永久保存到数据库中。

什么是大事务?

运行时间比较长,操作数据比较多的事务

风险:

运行时间长 操作数据比较多的事务
锁定大量的数据 造成大量的阻塞和锁超时
回滚需要的时间比较长 回滚时数据也会被锁定也会造成主从延迟
解决方法:避免一次性处理大量数据 可以分批处理数据
移除不必要的select操作
转载自:http://www.codexueyuan.com/learn/learn-detail180

文章评论

漫画:程序员的工作
漫画:程序员的工作
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
程序员的鄙视链
程序员的鄙视链
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
鲜为人知的编程真相
鲜为人知的编程真相
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
每天工作4小时的程序员
每天工作4小时的程序员
旅行,写作,编程
旅行,写作,编程
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
我是如何打败拖延症的
我是如何打败拖延症的
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
代码女神横空出世
代码女神横空出世
我的丈夫是个程序员
我的丈夫是个程序员
程序员和编码员之间的区别
程序员和编码员之间的区别
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
 程序员的样子
程序员的样子
那些争议最大的编程观点
那些争议最大的编程观点
老程序员的下场
老程序员的下场
为什么程序员都是夜猫子
为什么程序员都是夜猫子
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
程序员都该阅读的书
程序员都该阅读的书
编程语言是女人
编程语言是女人
如何成为一名黑客
如何成为一名黑客
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
程序员应该关注的一些事儿
程序员应该关注的一些事儿
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
10个调试和排错的小建议
10个调试和排错的小建议
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
一个程序员的时间管理
一个程序员的时间管理
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
程序员必看的十大电影
程序员必看的十大电影
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有