mysql连接5个表加模糊查询的sql怎么优化分析

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: mysql连接5个表加模糊查询的sql怎么优化分析

注意:5个表连接在真实项目中不推荐这样连接,实战中,表连接不能超过3张表,否则会有性能问题。

     SELECT
        s.s_id,
        s.s_name,
        s.s_phone,
        s.s_qq,
        s.s_age,
        s.s_birthday,
        s.s_stars,
        s.s_attribute,
        clazz.clazz_id,
        clazz.c_name,
        g.g_id,
        g.g_name,
        c.c_id,
        c.c_name,
        m.m_id,
        m.m_name
        FROM (
       #6.select * from t_student where s_name like '王恒%' 
       #7.select * from t_student where  instr(s_name,'王恒') 
       #8..select s_id,clazz_id,g_id,c_id,s_name,s_phone,s_qq,s_age,s_birthday,s_stars,s_attribute from t_student where  instr(s_name,'王恒') 
        ) s
        LEFT JOIN t_clazz clazz ON s.clazz_id = clazz.clazz_id
        LEFT JOIN t_group g ON s.g_id = g.g_id
        LEFT JOIN t_city c  ON  s.c_id = c.c_id
        LEFT JOIN m_s_fk ms ON s.s_id = ms.s_id
        LEFT JOIN t_mark m ON ms.m_id = m.m_id


image.pngimage.pngimage.png




#  0.00140350
select * from t_student where s_name like '王恒%' 

image.png

1、instr优化

#0.00124200
 select * from t_student where  instr(s_name,'王恒')  

image.png

2、写全字段

 # 0.00059350
select s_id,clazz_id,g_id,c_id,s_name,s_phone,s_qq,s_age,s_birthday,s_stars,s_attribute 
from t_student where  instr(s_name,'王恒') 

image.png


3、索引优化

  #创建索引   0.00030400
  create index s_name on t_student(s_name);

image.png


总结:


sql 在使用SELECT语句或者使用其它语句时,直接使用*和把所有的字段弄上去查询,性能有很大差距,所以我们平时写查询最好用字段写上


instr(str,substr):返回字符串str串中substr子串第一个出现的位置,没有找到字符串返回0,否则返回位置(从1开始) 进行优化


创建索引优化


原始模糊查询(0.00140350)<instr优化(0.00124200)<写全字段(0.00059350)<索引优化( 0.00030400)[注:索引优化只能使用:like keyword%!索(MISSING)引有效]


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
2月前
|
存储 消息中间件 监控
MySQL 到 ClickHouse 明细分析链路改造:数据校验、补偿与延迟治理
蒋星熠Jaxonic,数据领域技术深耕者。擅长MySQL到ClickHouse链路改造,精通实时同步、数据校验与延迟治理,致力于构建高性能、高一致性的数据架构体系。
MySQL 到 ClickHouse 明细分析链路改造:数据校验、补偿与延迟治理
|
3月前
|
SQL 数据可视化 关系型数据库
MCP与PolarDB集成技术分析:降低SQL门槛与简化数据可视化流程的机制解析
阿里云PolarDB与MCP协议融合,打造“自然语言即分析”的新范式。通过云原生数据库与标准化AI接口协同,实现零代码、分钟级从数据到可视化洞察,打破技术壁垒,提升分析效率99%,推动企业数据能力普惠化。
341 3
|
3月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
169 3
|
3月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
849 152
|
2月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
530 5
|
2月前
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
221 6
|
3月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
3月前
|
SQL Java 关系型数据库
Java连接MySQL数据库环境设置指南
请注意,在实际部署时应该避免将敏感信息(如用户名和密码)硬编码在源码文件里面;应该使用配置文件或者环境变量等更为安全可靠地方式管理这些信息。此外,在处理大量数据时考虑使用PreparedStatement而不是Statement可以提高性能并防止SQL注入攻击;同时也要注意正确处理异常情况,并且确保所有打开过得资源都被正确关闭释放掉以防止内存泄漏等问题发生。
170 13
|
3月前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(上)
最终建议:当前系统是完美的读密集型负载模型,优化重点应放在减少行读取量和提高数据定位效率。通过索引优化、分区策略和内存缓存,预期可降低30%的CPU负载,同时保持100%的缓冲池命中率。建议每百万次查询后刷新统计信息以持续优化
256 6
|
3月前
|
SQL 关系型数据库 MySQL
MySQL数据库连接过多(Too many connections)错误处理策略
综上所述,“Too many connections”错误处理策略涉及从具体参数配置到代码层面再到系统与架构设计全方位考量与改进。每项措施都需根据具体环境进行定制化调整,并且在执行任何变更前建议先行测试评估可能带来影响。
1156 11

推荐镜像

更多