前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >探讨一下大促销当中数据库可能出现的问题

探讨一下大促销当中数据库可能出现的问题

作者头像
Yuou
发布2022-09-26 15:41:52
1.4K0
发布2022-09-26 15:41:52
举报

究竟哪些东西可以影响到我们服务器的性能呢?

无非就是:CPU、磁盘IO、内存等等一系列硬件

在研究性能时候,先带大家来了解三个术语

  • QPS: 每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,简言之就是数据库每秒能查多少数据
  • TPS: 服务器每秒处理的事务数。TPS包括一条消息入和一条消息出,加上一次用户数据库访问。(业务TPS = CAPS × 每个呼叫平均TPS
  • 并发量: 同一时间处理请求的数量,注意不要和同时连接数搞混,连接数要比并发量多的多的多

如果存在超高的QPS和TPS

  • 效率低下的SQL

在访问量急剧增大的情况下,数据库每秒能处理多少个QPS就显得很重要了。

假设我们现在只有一个CPU进行处理SQL语句

  • 10ms处理1个SQL
  • 1s处理100个SQL
  • QPS<=100

在假设如果处理SQL语句的时间变长

  • 100ms处理一个SQL
  • 1s处理10个SQL
  • QPS<=10

解决方法

  • 80%的数据库QPS可以通过优化SQL语句来进行一定的优化.

大量的并发和超高的CPU

  • 大量的并发: 数据库连接数被占满(导致网页提示503)
  • 超高的CPU使用率: 因CPU的资源耗尽出现了宕机

解决方法

  • 你需要设置一下MySQL的最大连接数max_connections
  • 选择性能更高的CPU

磁盘IO

风险

  • 磁盘IO性能突然下降
  • 其他大量消耗磁盘性能的计划任务(调整计划任务,做好此盘维护)

解决方法

  • 使用更快的磁盘设备

网卡流量

风险

  • 网卡流量被占满导致无法连接数据库

解决方法

  • 减少从服务器的数量
  • 进行分级缓存
  • 避免使用select *进行查询
  • 分离业务网络和服务器网络

大表

  • 记录行数巨大,单表超过千万行
  • 表数据文件巨大,表数据文件超过10GB

大表对查询的影响

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

大表对DDL语句操作的影响

  • 建立索引需要很长时间
    • 如果MySQL版本<5.5建立索引会被锁表
    • 如果MySQL版本>=5.5虽然不会被锁表但是会引起主从延迟
  • 修改表结构需要长时间锁表
    • 同建立索引一样,会造成长时间的主从延迟
    • 影响正常数据的操作,阻塞数据

因为所有的Insert语句都会阻塞,都需要等到你的表结构修改完成后才能处理。

解决数据库中的大表

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

难点

  • 分表主键的选择
  • 分表后跨分区数据的查询和统计
  • 可能会影响后端业务,需要大量的人力物力

大表的历史数据归档

优点

  • 减少对前后端业务的影响

难点

  • 归档时间点的选择
  • 如何进行归档操作
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如果存在超高的QPS和TPS
  • 大量的并发和超高的CPU
  • 磁盘IO
  • 网卡流量
  • 大表
  • 解决数据库中的大表
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档