分分钟解决 MySQL 查询速度慢与性能差
副标题[/!--empirenews.page--]
一、什么影响了数据库查询速度 1.1 影响数据库查询速度的四个因素 1.2 风险分析 QPS: QueriesPerSecond意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。 TPS: 是 TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。 Tips: 最好不要在主库上数据库备份,大型活动前取消这样的计划。
1.3 网卡流量:如何避免无法连接数据库的情况
1.4 大表带来的问题( 重要) 1.4.1 大表的特点
1.4.2 大表的危害 1.慢查询:很难在短时间内过滤出需要的数据 查询字区分度低 -> 要在大数据量的表中筛选出来其中一部分数据会产生大量的磁盘 io -> 降低磁盘效率 2.对 DDL影响: 建立索引需要很长时间:
修改表结构需要长时间的锁表:会造成长时间的主从延迟('480秒延迟') 1.4.3 如何处理数据库上的大表 分库分表把一张大表分成多个小表 难点:
1.5 大事务带来的问题( 重要*)* 1.5.1 什么是事务 1.5.2事务的 ACID属性 1、原子性( atomicity):全部成功,全部回滚失败。银行存取款。 2、一致性(consistent):银行转账的总金额不变。 3、隔离性(isolation): 隔离性等级:
查看系统的事务隔离级别: show variables like'%iso%'; 开启一个新事务: begin; 提交一个事务: commit; 修改事物的隔离级别: setsession tx_isolation='read-committed'; 4、持久性( DURABILITY):从数据库的角度的持久性,磁盘损坏就不行了 redolog机制保证事务更新的一致性和持久性 1.5.3 大事务 运行时间长,操作数据比较多的事务; 风险:锁定数据太多,回滚时间长,执行时间长。
解决思路:
二、什么影响了MySQL性能( 非常重要) 2.1 影响性能的几个方面
2.2 MySQL体系结构 分三层:客户端->服务层->存储引擎
2.3 InnoDB存储引擎 MySQL5.5及之后版本默认的存储引擎: InnoDB。 2.3.1 InnoDB使用表空间进行数据存储。 show variables like'innodb_file_per_table 如果innodbfileper_table 为 ON 将建立独立的表空间,文件为tablename.ibd; 如果innodbfileper_table 为 OFF 将数据存储到系统的共享表空间,文件为ibdataX(X为从1开始的整数); .frm :是服务器层面产生的文件,类似服务器层的数据字典,记录表结构。 (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |