MySQL优化方案

插入数据

1.批量插入

1).尽量使用多个值表的INSERT语句,这种方式将大大缩减客户端与数据库之间的连接、关闭等消耗
insert into test values(1,2),(1,3),(1,4)…
2).当从一个文本文件装载一个表时,使用LOAD DATA INFILE,这通常比使用很多 INSERT语句快20倍

索引相关

1.mysql索引分类
主键索引:PRIMARY KEY
唯一索引:索引列的所有值都只能出现一次,即必须唯一
普通索引:最基本的索引类型,而且它没有唯一性之类的限制
全文索引:全文索引的索引类型为FULLTEXT。全文索引可以在VARCHAR或者TEXT类型的列上创建

2.mysql查看表索引
show index from table_name;

3.sql中使用了聚合函数,唯一过滤字段name已建索引,并且聚合函数中字段是主键或该索引字段,虽然name是不等于表达式,仍然可以走索引(“覆盖索引”,不需要查表)
select sum(id)或sum(name) from t_address where name <> 'aaa';

4.对于含有OR的查询语句,如果要利用索引,则OR之间的每个条件列都必须用到索引,例如:
select * from table_name where col01='aa' or col02='bb';
字段col01和col02分别有单列索引时,现MySQL在处理含有OR字句的查询时,实际是对OR的各个字段分别查询后的结果进行了UNION
但如果col01和col02是放在一个联合索引中,则MySQL不会使用到该索引

 

posted on   阿泰555  阅读(128)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示