本期唠嗑茶话会来征集 TiDB 数据库性能优化大师啦!想让各位 TiDBer 们分享一下大家平时都是如何优化 TiDB 性能的呐? 任何方面 & 办法都可以来分享哦!包括但不限于以下方面:point_down:
【查询优化】:通过 SQL 语句的编写和索引的优化来提高查询性能?包括覆盖索引、前缀索引、索引合并等优化方法。
【统计信息优化】:如何收集和利用统计信息来优化查询计划?包括收集原理、定期更新、多列统计信息等方法。
【硬件和网络优化】:如何选择合适的硬件和网络配置来提高 TiDB 性能?包括 CPU、内存、存储、网络带宽等方面的优化。
【TiDB 集群优化】:如何配置 TiDB 集群来提高性能?包括 TiDB PD、TiKV、TiFlash 的配置和优化
【数据库应用优化】:如何通过应用程序的调整和优化来提高数据库性能?包括缓存、分表、批量操作等优化方法。
回复格式:
【优化类型:如查询/硬件优化】+ 是用什么办法来优化调整性能的。
请各位小伙伴们按照格式回复参与话题讨论哦!征集到的回复最终会汇总成【社区智慧合集】~
本期话题:
各位 TiDBer 们分享一下大家平时都是如何优化 TiDB 性能的呐?
活动奖励:
参与奖:
按照格式参与话题讨论的 TiDBer 可以获得 30 积分奖励
活动时间:
2023.4.28-2023.5.5
1 个赞
Kongdom
(Kongdom)
2023 年4 月 29 日 08:45
5
【硬件和网络优化】开启Raid卡缓存,使机械硬盘的IO性能直线提升。
MegaCli64 -LDInfo -Lall -aALL #查看
MegaCli64 -LDSetProp -WB -Lall -aAll #有电池启用缓存
MegaCli64 -LDSetProp CachedBadBBU -Lall -aALL #没有电池启用缓存
MegaCli64 -LDSetProp NOCachedBadBBU -Lall -aALL #没有电池关闭缓存
注意:必须保证Raid卡的电池正常,否则意外断电会导致数据丢失
2 个赞
优化tidb的性能:
一、先从sql方面优化:
1.先看执行计划,最简单的,看看是不是缺索引,是的话,直接加索引
2.如果因为统计信息太旧导致执行计划异常,直接重新收集统计信息
3.统计信息很新但是执行计划还不对,指定hint
4.sql执行计划都对,但是速度还是不理想,如果是oltp请求,改写sql或者联系开发修改应用逻辑
5.sql执行计划对,但是速度无法接受,OLAP请求,直接上tiflash
二、如果以上都做了,性能还达不到要求,从参数层面优化:
1.看看是不是某些参数设置有问题,能在线修改参数的直接在线修改
2.不能在线修改的,修改配置文件参数后reload集群
三、再看主机资源
1.是不是有主机其他进程挤占主机资源
2.看看是不是主机的参数可以优化
四、以上方法都用过了,发现性能还是达不到
1.评估当前集群的资源利用率,不足直接向老板申请扩容
3 个赞
【查询优化】可以通过分片、路由等技术来避免大量的热点数据,从而提高系统的可扩展性和可用性。在编写 SQL 语句时,应该尽量减少全表扫描,使用合适的索引来提高查询性能。比如可以使用覆盖索引、前缀索引、联合索引等技术来减少索引占用空间、提高查询效率。
1 个赞
清风明月
2023 年5 月 2 日 02:16
8
1.版本信息
select tidb_version();
2.查看数据库
show databases;
3.创建数据库
create database tidb;
4.进入数据库
user tidb;
5.查看表
show tables;
6.链接查询
show processlist;
7.开启角色
set role all;
8.查看角色
select current_role();
9.查看授权
show grants;
【数据库应用优化】:如何通过应用程序的调整和优化来提高数据库性能?包括缓存、分表、批量操作等优化方法
1.程序里面select语句必须指定要选择的列,不允许select * 用法,做好上线和测试工作
2.对于批量insert场景,必须开启批量提交,客户端和服务端参数都好调整
3.对于批量update和delete场景,提前和业务沟通,尽量减少此类批量操作,转而通过replace扥方式或业务优化调整
4.对于有大量数据存储和有时限的表,我们也不建议分表,而且使用分区表,对过期的数据直接通过高效的删分区方式完成,而不是低效的批量delete方式
5.对于高频访问的只有几千行的小型表,设置为缓存表,可以将每秒过万的 select 延迟从5ms下降到1ms左右
6.对于有大量中间计算结果需要复用的应用,我们使用内存临时表实现
1 个赞
烂SQL优化。大部分问题都可以解决
硬件优化
开发长点心
liuis
(心安是吾乡)
2023 年5 月 4 日 02:00
16
1、慢sql优化
2、合适的索引
3、集群参数根据业务适配调优
主要是使用上的优化
LI-ldc
(Li Ldc)
2023 年5 月 4 日 02:35
17
1.查询优化
主要是慢SQL优化:
2.硬件和网络优化
主要是数分的硬件优化,部署在云平台,可以根据监控CPU、内存、IO等情况,具体优化。
常用的就是sql优化,索引,不行分库分表,参数优化,硬件优化
【硬优化】硬件优化一般不可主导,每个业务都尽最大建议给"能力之内"的配置!
【软优化】读写优化90%在SQL层面,使用常规SQL优化方法进行相关优化处理;再配合数据库系统优化参数进行设置调优。