见贤思小齐,知足常乐呵

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  SQL优化

摘要:参数排序方法,只能作用于临时表,不能作用于join的结果。不然报错!!! 正确用法如下: set @p = null; set @r = 0; select record_id,doctor_name,doctor_guid, rank,create_date from ( SELECT s.*, 阅读全文
posted @ 2021-11-22 20:22 Suckseedeva 阅读(120) 评论(0) 推荐(0)

摘要:使用delete删除的时候,mysql并没有把数据文件删除,而是将数据文件的标识位删除,没有整理文件,因此不会彻底释放空间。 可以使用 OPTIMIZE TABLE 是指对表进行优化。 这个命令可以将表中的空间碎片进行合并,并且可以消除由于删除或者更新造成的空间浪费 。 OPTIMIZE TABLE 阅读全文
posted @ 2021-05-11 18:25 Suckseedeva 阅读(415) 评论(0) 推荐(0)

摘要:1. like '%keyword%' 的方式不会走索引,全表扫描 select *from table where column like '%keyword%'; 2. regexp 都不会走索引 3. like 'keyword%' 的方式会走索引,但要求查询的关键词都在开头 select * 阅读全文
posted @ 2020-07-31 14:34 Suckseedeva 阅读(375) 评论(0) 推荐(0)

摘要:原因和解决方案参考: https://blog.csdn.net/xuexiiphone/article/details/103426404 随手记录: 问题: 通过insert into select的方式,将查询结果导入到新的表中,会产生如下错误 1292 - Truncated incorre 阅读全文
posted @ 2020-06-29 19:03 Suckseedeva 阅读(1579) 评论(0) 推荐(0)

摘要:学习自 https://blog.csdn.net/qq_36761831/article/details/82862135 1. like 与 regexp比较 like有的功能,regexp都有;regexp还能进行更精确的匹配 -- 模糊匹配两者完全等价 SELECT * FROM rp_da 阅读全文
posted @ 2020-05-13 15:11 Suckseedeva 阅读(421) 评论(0) 推荐(0)

摘要:#查询是否锁表 show OPEN TABLES where In_use > 0; #查看所有进程 show processlist #kill kill 288607; #查看正在锁的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; 阅读全文
posted @ 2020-03-10 14:39 Suckseedeva 阅读(192) 评论(0) 推荐(0)

摘要:order by rand() limit 100 1. 可用于普通随机筛选 2. 也可用于row_number() 等函数的排序里作为随机排序。 阅读全文
posted @ 2019-01-28 20:13 Suckseedeva 阅读(4867) 评论(0) 推荐(1)

摘要:原因:两个表join的时候,不支持两个表的字段 非相等 操作。 可以把不相等条件拿到 where语句中。 例如: right JOIN test.dim_month_date p2 on p1.month=p2.y_month and p1.day<=p2.day 可以改写成 right JOIN 阅读全文
posted @ 2017-11-08 16:08 Suckseedeva 阅读(19707) 评论(0) 推荐(0)

摘要:1. impala端创建的表,DROP。 hive会自动同步到。 但是通过hive DROP时,数据还会在,只是表的元数据没有了。 所以完全DROP表,需要impala端的DROP 2. impala 不支持 多个count(distinct ) 和udf 3. 在后台服务器连接impala-she 阅读全文
posted @ 2017-09-11 18:26 Suckseedeva 阅读(1898) 评论(0) 推荐(0)

摘要:1. 自定义udf 编写udf 1)pom.xml 2) 函数套路: 2. ODPS的查询结果无法复制,只能扣你需要的值 F12 或者页面右键(检查)调出页面源码; 左上角有 箭头,点击 、 然后移到,要扣的值那里点击。右边对应源码中的值即被选中。 阅读全文
posted @ 2017-04-28 14:58 Suckseedeva 阅读(638) 评论(0) 推荐(0)

摘要:1. 几个表进行join,然后过滤 等价于 分别过滤为小表后,再join? 并不完全。 2)确实比1)效率高, 但要注意一些NULL值过滤。否则2)得到的结果比1)多 2. left join 的 不等值连接 等价于 left join where 不等值条件? 并不。 可以把不等值挪到case w 阅读全文
posted @ 2016-10-21 15:09 Suckseedeva 阅读(441) 评论(0) 推荐(0)

摘要:1. 定义job名字 SET mapred.job.name='customer_rfm_analysis_L1'; 这样在job任务列表里可以第一眼找到自己的任务。 2. 少用distinct, 尽量用group by 因为会把数据弄在一个reduce中,造成数据倾斜。distinct数据数量大于 阅读全文
posted @ 2016-02-19 17:12 Suckseedeva 阅读(1541) 评论(0) 推荐(0)