优化一个mysql语句
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,优化了一个mysql的语句,没有什么技术含量,说一下过程:优化前语句如下,大约执行时间为1-2秒select u.id ,u.s_user_name,u.s_user_img,(select cou
千家信息网最后更新 2026年11月01日优化一个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安全错误
数据库的锁怎样保障安全
咖啡
互联网佳科技有限公司
互联网科技公司的优势
A股互联网金融科技公司
互联网科技财经
涨乐互联网科技
新华互联网科技学院
互联网 的科技创新
以房互联网科技
互联网与未来科技
迪茉互联网科技
广州互联网络科技有限公司
菲比寻常互联网科技
互联网 科技馆
老年人脱离互联网科技的作文
成都玖崟互联网科技有限公司乐商圈怎么样
语蝶互联网科技有限公司
互联网科技的全部知识
深圳艾果互联网通讯科技
如何强化互联网金融科技
互联网络科技
华服互联网科技怎么样
广州大一互联网络科技有限公司
云之行互联网科技
西藏七维空间互联网科技有限公司
科技互联网大厂
互联网科技和法律行业
互联网在线教育科技创业
互联网科技平台产品运营
宁波允成互联网科技有限公司