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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 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)引有效]


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2天前
|
SQL 资源调度 分布式计算
如何让SQL跑快一点?(优化指南)
这篇文章主要探讨了如何在阿里云MaxCompute(原ODPS)平台上对SQL任务进行优化,特别是针对大数据处理和分析场景下的性能优化。
|
1天前
|
存储 关系型数据库 MySQL
优化 MySQL 的锁机制以提高并发性能
【10月更文挑战第16天】优化 MySQL 锁机制需要综合考虑多个因素,根据具体的应用场景和需求进行针对性的调整。通过不断地优化和改进,可以提高数据库的并发性能,提升系统的整体效率。
4 1
|
1天前
|
缓存 关系型数据库 MySQL
一文彻底弄懂MySQL优化之深度分页
【10月更文挑战第24天】本文深入探讨了 MySQL 深度分页的原理、常见问题及优化策略。首先解释了深度分页的概念及其带来的性能和资源问题。接着介绍了基于偏移量(OFFSET)和限制(LIMIT)以及基于游标的分页方法,并分析了它们的优缺点。最后,提出了多种优化策略,包括合理创建索引、优化查询语句和使用数据缓存,帮助提升分页查询的性能和系统稳定性。
|
4天前
|
NoSQL 关系型数据库 MySQL
MySQL与Redis协同作战:百万数据量的优化实录
【10月更文挑战第6天】 在现代互联网应用中,随着用户量的增加和业务逻辑的复杂化,数据量级迅速增长,这对后端数据库系统提出了严峻的挑战。尤其是当数据量达到百万级别时,传统的数据库解决方案往往会遇到性能瓶颈。本文将分享一次使用MySQL与Redis协同优化大规模数据统计的实战经验。
22 3
|
4天前
|
SQL 数据库 索引
SQL语句实现投影连接:方法与技巧详解
在SQL数据库查询中,投影和连接是两个核心概念
|
4天前
|
NoSQL 关系型数据库 BI
记录一次MySQL+Redis实现优化百万数据统计的方式
【10月更文挑战第13天】 在处理百万级数据的统计时,传统的单体数据库往往力不从心,这时结合使用MySQL和Redis可以显著提升性能。以下是一次实际优化案例的详细记录。
18 1
|
4天前
|
SQL 运维 关系型数据库
MySQL 运维 SQL 备忘
MySQL 运维 SQL 备忘录
19 1
|
2天前
|
监控 关系型数据库 MySQL
mysql8索引优化
综上所述,深入理解和有效实施这些索引优化策略,是解锁MySQL 8.0数据库高性能查询的关键。
9 0
|
4天前
|
SQL 数据库 索引
SQL语句实现投影连接:技巧与方法详解
在SQL数据库操作中,投影连接(Projection Join)是一种常见的数据查询技术,它结合了投影(Projection)和连接(Join)两种操作
|
6天前
|
SQL 存储 关系型数据库
mysql 数据库空间统计sql
mysql 数据库空间统计sql
19 0