
数据库
weixin_41624046
这个作者很懒,什么都没留下…
展开
-
row_number()、rank()、dense_rank() 的区别
row_number的用途非常广泛,排序最好用它,它会为查询出来的每一行记录生成一个序号,依次排序且不会重复,注意使用row_number函数时必须要用over子句选择对某一列进行排序才能生成序号。rank函数用于返回结果集的分区内每行的排名,行的排名是相关行之前的排名数加一。简单来说rank函数就是对查询出来的记录进行排名,与row_number函数不同的是,rank函数考虑到了over子句...转载 2018-11-14 11:41:12 · 668 阅读 · 0 评论 -
sql语句执行顺序及简单优化
SQL的执行顺序(1)from (表关联,是从后往前、从右到左解析的) 所以尽量把数据量大的表放在最左边来进行关联(2) on 需要从哪个数据表检索数据(3) join 多表连接时,使用表的别名并把别名前缀于每个Column上。可以减少解析的时间并减少那些由Column 歧义引起的语法错误.(4) where 过滤表中数据的条件 (解析顺序是自下而上、从右到...原创 2018-12-04 14:28:42 · 935 阅读 · 0 评论 -
处理数据库中大表的时SQL的注意事项
SQL语句方面1. 应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2. 应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num=10 or num=20 可以这样查询: select id from t where num=1...原创 2018-12-04 14:42:27 · 493 阅读 · 0 评论 -
MySQL数据库使用日志进行分析说明
对于mysql的慢查询日志, slow_launch_time:表示如果建立线程花费了比这个值更长的时间,slow_launch_threads 计数器将增加 slow_query_log:是否开启慢查询日志 ON开启,OFF关闭 默认没有开启 slow_query_log_file:日志保存路径 long_query_time:达到多少秒的sql就记录日...原创 2018-12-04 14:53:45 · 486 阅读 · 0 评论 -
SQL高级优化
优化争议无数的count() 统计列与统计行? COUNT()是一个特殊的函数,有两种不同的作用,它可以统计某个列值的数量,也可以统计行数。 在统计列值的时候要求列值是非空的,也就是不统计null。 当我们统计行的时候,常见的是COUNT(*),这种情况下,通配符*并不会像我们猜想的那样扩展成所有的列,实际上,它会忽略所有的列而直接统计所有的行数解密MyiS...原创 2018-12-04 15:00:53 · 494 阅读 · 0 评论