优化一个mysql语句
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,优化了一个mysql的语句,没有什么技术含量,说一下过程:优化前语句如下,大约执行时间为1-2秒select u.id ,u.s_user_name,u.s_user_img,(select cou
千家信息网最后更新 2025年01月20日优化一个mysql语句
优化了一个mysql的语句,没有什么技术含量,说一下过程:
优化前语句如下,大约执行时间为1-2秒
select u.id ,u.s_user_name,u.s_user_img,(select count(a.n_copy_count) from t_fonts a join t_practicerecords b on b.n_font_id=a.id where a.n_user_id=u.id and b.n_delete=0 group by a.n_user_id)as n_copy_count,case when (select count(id) from t_friendships where n_user_id=11311 and n_friend_id=u.id)>0 then 'true' else 'false' end as is_collected from t_users u where BINARY `s_user_name` = '做字小助手' order by LENGTH(s_user_name) asc ,id asc limit 0,10
相关的执行计划如下:
mysql> EXPLAIN select u.id ,u.s_user_name,u.s_user_img,(select count(a.n_copy_count) from t_fonts a join t_practicerecords b on b.n_font_id=a.id where a.n_user_id=u.id and b.n_delete=0 group by a.n_user_id)as n_copy_count,case when (select count(id) from t_friendships where n_user_id=11311 and n_friend_id=u.id)>0 then 'true' else 'false' end as is_collected from t_users u where BINARY `s_user_name` = '做字小助手' order by LENGTH(s_user_name) asc ,id asc limit 0,10;+----+--------------------+---------------+------------+--------+-------------------------------------------------------------+---------------------------------+---------+------------------+---------+----------+-----------------------------+| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |+----+--------------------+---------------+------------+--------+-------------------------------------------------------------+---------------------------------+---------+------------------+---------+----------+-----------------------------+| 1 | PRIMARY | u | NULL | ALL | NULL | NULL | NULL | NULL | 1360606 | 100.00 | Using where; Using filesort || 3 | DEPENDENT SUBQUERY | t_friendships | NULL | eq_ref | PRIMARY,PK__T_friend__3213E83F571DF1D5,user_index,n_user_id | PRIMARY | 8 | const,sykdb.u.id | 1 | 100.00 | NULL || 2 | DEPENDENT SUBQUERY | a | NULL | ref | PRIMARY,n_user_index | n_user_index | 4 | sykdb.u.id | 7 | 100.00 | Using index condition || 2 | DEPENDENT SUBQUERY | b | NULL | ref | idx_fid_score_delete_uploadtime | idx_fid_score_delete_uploadtime | 5 | sykdb.a.id,const | 5 | 100.00 | Using index |+----+--------------------+---------------+------------+--------+-------------------------------------------------------------+---------------------------------+---------+------------------+---------+----------+-----------------------------+4 rows in set, 4 warnings (0.00 sec)
对t_users表的s_user_name字段创建索引,并修改表结构
mysql> create index idx_user_name on t_users (s_user_name);Query OK, 0 rows affected (5.55 sec)Records: 0 Duplicates: 0 Warnings: 0mysql> alter table t_users modify s_user_name varchar(100) binary;Query OK, 1474778 rows affected (45.23 sec)Records: 1474778 Duplicates: 0 Warnings: 0
修改语句把binary去掉,再次查询如下:
mysql> select u.id ,u.s_user_name,u.s_user_img,(select count(a.n_copy_count) from t_fonts a join t_practicerecords b on b.n_font_id=a.id where a.n_user_id=u.id and b.n_delete=0 group by a.n_user_id)as n_copy_count,case when (select count(id) from t_friendships where n_user_id=11311 and n_friend_id=u.id)>0 then 'true' else 'false' end as is_collected from t_users u where `s_user_name` = '做字小助手' order by LENGTH(s_user_name) asc ,id asc limit 0,10;+----+-----------------+--------------------------------+--------------+--------------+| id | s_user_name | s_user_img | n_copy_count | is_collected |+----+-----------------+--------------------------------+--------------+--------------+| 2 | 做字小助手 | /0/1/photo/20160729035328.jpeg | NULL | false |+----+-----------------+--------------------------------+--------------+--------------+1 row in set (0.00 sec)
不过修改表结构需谨慎。
助手
语句
结构
再次
含量
字段
技术
时间
索引
过程
查询
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
关于使用ecs服务器的体验
网络安全安全题
爱奇艺视频软件开发者
军人确保网络安全心得体会
数据库语句查询网站
虚拟服务器怎么kvm管理
西安直播医疗健康软件开发
软件开发周围同事怎么称呼
his数据库文档
数据库主键 整型还是字符
全国人大网络安全法实施回顾
网络安全工具收纳好物
全国青少年网络安全条例
中小学家校共育与网络安全
软件开发流程项目启动
文件服务器收费
中国赛宝软件开发中心测试
江阴专注软件开发哪家好
某公司有数据库
老外软件开发 一个顶几十个
网络安全安全题
神武4生日快乐服务器
红谷滩网络技术学校
潍坊游戏软件开发解决方案
河南服务器硬盘
2019全国网络安全管理员
长沙正规软件开发价格
网络安全法立法宗旨
宝山区专业性网络技术备案
网络安全cst战队