干货|一次MySQL两千万数据大表的优化过程,三种解决方案!

本文详细记录了一次针对2000万数据的MySQL大表优化过程,包括数据库设计优化、SQL优化、分区、分表等策略。通过优化索引、避免全表扫描、使用分区和分表,以及考虑更换更强大的数据库服务,最终解决了查询速度慢的问题,提升了系统性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题概述

使用阿里云rds for MySQL数据库(就是MySQL5.6版本),有个用户上网记录表6个月的数据量近2000万,保留最近一年的数据量达到4000万,查询速度极慢,日常卡死。严重影响业务。

问题前提:老系统,当时设计系统的人大概是大学没毕业,表设计和sql语句写的不仅仅是垃圾,简直无法直视。原开发人员都已离职,到我来维护,这就是传说中的维护不了就跑路,然后我就是掉坑的那个!!!

我尝试解决该问题,so,有个这个日志。

方案概述

以上三种方案,按顺序使用即可,数据量在亿级别一下的没必要换nosql,开发成本太高。三种方案我都试了一遍,而且都形成了落地解决方案。该过程心中慰问跑路的那几个开发者一万遍 :)

方案一详细说明:优化现有mysql数据库

跟阿里云数据库大佬电话沟通 and Google解决方案 and 问群里大佬,总结如下(都是精华):

1.数据库设计和表创建时就要考虑性能

2.sql的编写需要注意优化

3.分区

4.分表

5.分库

1.数据库设计和表创建时就要考虑性能

mysql数据库本身高度灵活,造成性能不足,严重依赖开发人员能力。也就是说开发人员能力高,则mysql性能高。这也是很多关系型数据库的通病,所以公司的dba通常工资巨高。

设计表时要注意:

1.表字段避免null值出现,null值很难查询优化且占用额外的索引空间,推荐默认数字0代替null。

2.尽量使用INT而非BIGINT,如果非负则加上UNSIGNED(这样数值容量会扩大一倍),当然能使用TINYINT、SMALLINT、MEDIUM_INT更好。

3.使用枚举或整数代替字符串类型

4.尽量使用TIMESTAMP而非DATETIME

5.单表不要有太多字段,建议在20以内

6.用整型来存IP

索引

1.索引并不是越多越好,要根据查询有针对性的创建,考虑在WHERE和ORDER BY命令上涉及的列建立索引,可根据EXPLAIN来查看是否用了索引还是全表扫描

2.应尽量避免在WHERE子句中对字段进行NULL值判断,否则将导致引擎放弃使用索引而进行全表扫描

3.值分布很稀少的字段不适合建索引,例如"性别"这种只有两三个值的字段

4.字符

<think>好的,我需要帮助用户在Ubuntu系统中下载并安装Steam++(即Watt Toolkit)。首先,我应该回顾用户提供的引用内容,看看有没有相关的步骤。根据引用[4],用户提到需要安装一些依赖包,比如libnss3-tools、jq和zenity,然后从官网下载Linux版本并解压运行.sh文件。同时,引用[1]也提到了类似的步骤,包括下载、解压和运行.sh文件。 首先,我需要确认用户的操作系统是Ubuntu 22.04,因为引用[1]和[4]都是基于这个版本的。接下来,安装依赖包是必要的,步骤中提到的三个包需要正确安装。然后,用户需要访问Steam++的官方网站下载对应的Linux版本,这通常是.deb文件或压缩包。根据引用[1],解压后运行.sh文件,可能需要终端命令来执行安装脚本。 需要注意的是,用户可能对Linux命令不太熟悉,所以需要详细说明每一步的命令,比如使用sudo apt-get install来安装依赖,使用tar命令解压压缩包,然后赋予.sh文件执行权限并运行。此外,还要提醒用户如果遇到权限问题,可能需要使用chmod +x命令。 另外,引用[3]中提到了安装Steam本身时使用了sudo dpkg -i命令,但这里安装的是Steam++,所以步骤可能不同。用户可能混淆了Steam和Steam++,需要明确区分两者。Steam++是一个独立工具,可能需要不同的安装方式,比如通过.sh脚本安装。 最后,确保步骤清晰,避免遗漏任何可能导致安装失败的关键点,比如依赖包的安装或执行权限的设置。如果用户遇到问题,可能需要建议他们检查依赖是否全部安装,或者查看官方文档获取帮助。</think>在Ubuntu系统中安装Steam++(Watt Toolkit)的步骤如下: --- ### **1. 安装依赖包** 首先在终端执行以下命令安装必要依赖: ```bash sudo apt-get update sudo apt-get install libnss3-tools jq zenity ``` 这三项依赖分别用于证书管理、JSON数据处理和图形对话框支持[^4]。 --- ### **2. 下载Steam++安装包** 访问[Steam++官网](https://steampp.net/),点击"Linux版本"下载压缩包(文件名为`Watt-Toolkit-xxx-linux-x64.tar.gz`)[^1]。 --- ### **3. 解压并安装** ```bash # 解压下载的压缩包 tar -zxvf Watt-Toolkit-*.tar.gz # 进入解压后的目录 cd Watt\ Toolkit/ # 赋予安装脚本执行权限 chmod +x install.sh # 运行安装脚本 ./install.sh ``` 安装完成后,程序会出现在系统应用菜单中[^1]。 --- ### **4. 启动与使用** 在应用菜单搜索"Watt Toolkit"启动,首次运行需配置Steam账号和加速规则。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值