mysql数据库引言_MySQL——前言

什么决定了双十一的成败?

一天之内上千亿元的成交量,可能同一时刻数据库中就在执行上千万条查询,所以双十一的成败,从技术上来说在于数据库!哪些方面会影响数据库的性能呢?

1.sql查询速度

2.服务器硬件

3.网卡流量

4.磁盘IO

SQL查询速度

大量的并发和超高的CPU使用率会导致的问题

大量的并发:数据库连接数被挤满!

超高的CPU使用率:因CPU资源耗尽而出现宕机!

效率低下的SQL,随着访问量增长,QPS和TPS增长,处理每一个请求的sql时间很长,导致QPS降低,所以必须要优化查询语句,尽量避免select *的使用。

服务器硬件

服务器硬件主要是限制了读写的速度,好的硬件写入磁盘的速度就会更快。

网卡流量

风险:网卡IO会被占满,导致外部访问出现500错误。

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

1.减少从服务器的数量(读写日志)

2.进行分级缓存(前端缓存)

3.避免使用select *进行查询,查询出没有必要的数据也会造成浪费

4.分离业务网络和服务器网络,避免主从同步,数据备份造成的影响。

其他方面影响数据库性能

一个表的数据量超过千万行就会造成影响或者表数据文件巨大,超过10G

但是这是相对的,与数据库文件的使用场景相关,用的少的数据库文件,很大对

数据库性能造成的影响并不大!

大表对查询的影响:

慢查询:很难再一定时间内过滤出所需要的数据。

产生大量的慢查询,拖慢网站的访问

所以要优化查询的方式

大表对DDL操作的影响

建立索引需要很长的时间

修改表结构需要长时间锁表:造成主从延迟。 影响正常的数据库操作

如何处理数据库中的大表

分库分表:把一张大表分成多个小表

难点:分表主键的选择

分表后跨分区数据的查询和统计

大事务带来的问题

什么是事务?

事务是数据库系统区别于其他一切文件系统的重要特性之一。

2.事务是一组具有原子性的sql语句,或是一个独立的工作单元,要么全部完成,要么全部失败

事务满足:原子性,一致性

隔离性,持久性

原子性:一个事务必须被是为一个不可分割的最小单元,要么全部执行功,要么全部失败,不可能只执行一部分。

一致性:是指事务讲数据库从一种一致性状态转换到另外一种一致性状态,数据库的完整性没有任何变化。(转账前后金额相同)

隔离性:隔离性要求一个事务对数据库中的数据的修改,在未提交完成之前对于其他事务是不可见的

未提交读:事务可以读取未提交的数据(read uncommitited)

已提交读:默认隔离,数据可能不一致

可重复读:数据一致

可串行化:严格数据一致性,无并发

隔离性越高并发性越低

事务的持久性

一旦事务提交,则其所作的修海就会永久保存到数据库中,此时即使系统崩溃已经提交的数据也不会丢失。

什么是大事务?

运行时间比较长,操作的数据比较多的事务。锁定太对的数据,造成大量的阻塞和锁超时。

回滚所需要时间比较长

执行时间长,容易造成主从延迟

如何处理大事务?

1.避免一次处理太多的数据(分批处理)

2.移除不必要的在事务中的select中的操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值