数据库性能优化调优
0,创建的时候分库分表。表大小超过一定范围如2G
1,主键顺序插入,性能好于乱序插入。推荐使用自增。
2,合理索引设计,
降低主键长度。
在查询时,创建列的索引,然后查询用索引列升序降序查询。
分页查询limit,最好覆盖索引。
索引碎片整理:碎片多的索引重写。
部分查询条件会使其索引失效,导致全盘扫描:
- where子句中使用!=或<>操作符(尽量使用=和>或者<)
- where子句中使用or来连接条件,那么将引擎放弃使用索引而进行全表扫描。
如: select id from twhere number=30 or number=40
优化为: selectid from t where number=30 union all select id from t where number=40
- in和not in 也要慎用,如: selectid from t where number in(12.3)对于连续的数值,能用 between就不要用in :
selectid fron t where number between 1 and 3,存在性用exists
- 在like匹配时候使用在前面加%:select id from t where name like ‘%abc
- 如果在where子句中使用参数,应尽量避免在where子句中对字段进行表达式操作
如: select id from t where num/2=100 改为: select id from t where num=100*2
- 在where子句中对字段进行函数操作
- 在where子句中对字段进行null值判断
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2021-04-10 第三节:c语言输入输出字符串hello world!
2021-04-10 第二节:c语言基础知识点
2021-04-10 第一节:c语言的路子