随笔分类 -  SQL

摘要:解题思路 【总结】 行列转换就是如下图所示两种展示形式的互相转换: (上表/行表:student1;下表/列表:student2) 【行转列——MAX/SUM+CASE WHEN+GROUP BY】 SELECT name, MAX(CASE WHEN subject='语文' THEN score 阅读全文
posted @ 2025-04-14 10:49 Vincezon 阅读(123) 评论(0) 推荐(0)
摘要:问题 当我们使用limit进行分页查询的时候,在数据量小的时候没有性能问题,但是当我们使用limit 100000,20的时候便会出现性能问题,查询速度极其慢,如下sql select * from goods limit 100000,20; 这是因为MySQL会扫描从0记录开始扫描到100020 阅读全文
posted @ 2025-04-11 18:17 Vincezon 阅读(53) 评论(0) 推荐(0)
摘要:in 能不能走索引需要看查询成本,如果走索引查询成本高那还不如走全表扫描,反之走索引查询。 如果走某个索引花费的随机IO比聚簇索引顺序查询(顺序IO)的成本高,那还不如全表扫描。 举例: num字段建立了二级索引只有1,2,3这三种值,但是1,2这两个值各有100多万条而3只有4条记录数,如果查询条 阅读全文
posted @ 2025-04-11 11:31 Vincezon 阅读(111) 评论(0) 推荐(0)
摘要:count(1) and count(*) 当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count()用时多了! 从执行计划来看,count(1)和count()的效果是一样的。但是在表做过分析之后,count(1)会比count(*)的用时少些(1w以内数据量),不过差不了多 阅读全文
posted @ 2020-09-23 18:08 Vincezon 阅读(405) 评论(0) 推荐(0)
摘要:常见type级别 system > const > eq_ref > ref > range > index > ALL 越往左边,性能越高,比如system就比ALL类型性能要高出许多,其中system、const只是理想类型,基本达不到;我们自己实际能优化到ref>range这两个类型,就是你自 阅读全文
posted @ 2020-09-19 16:08 Vincezon 阅读(1283) 评论(0) 推荐(0)
摘要:MySQL 5.7 的版本,因为在user表中没有password字段,一直使用下边的方式来修改root密码 use mysql; update user set authentication_string = password(“root”) where user = “root”; 现在要用My 阅读全文
posted @ 2020-02-26 20:38 Vincezon 阅读(1178) 评论(0) 推荐(0)