美文网首页周记
周记 2017 4.3 - 4.9

周记 2017 4.3 - 4.9

作者: 小程有话说 | 来源:发表于2017-04-08 10:48 被阅读32次

Mysql慢查询

select COUNT(a.id) ucount from table_a a 
  left join table_b b1 on a.userId1=b1.id 
  left join table_b b2 on a.userId2=b2.id 
  left join table_b b3 on a.userId3=b3.id 
  where a.add_time >= '2015-06-01 00:00:00' and a.add_time <= '2017-04-06 23:59:59'
# 这条sql语句耗时0.11s。

首先b表并不参与筛选条件,去除left join。

select COUNT(a.id) ucount from table_a a 
  where a.add_time >= '2015-06-01 00:00:00' and a.add_time <= '2017-04-06 23:59:59';
# 耗时0.03s。

给a表add_time添加索引,但是添加后同样sql查询时间并没有减少。

# 耗时0.03s。
+----+-------------+-------+------+---------------+------+---------+------+-------+-------------+
| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows  | Extra       |
+----+-------------+-------+------+---------------+------+---------+------+-------+-------------+
|  1 | SIMPLE      | a    | ALL  | idx_addTime   | NULL | NULL    | NULL | 73104 | Using where |
+----+-------------+-------+------+---------------+------+---------+------+-------+-------------+
# 执行计划中显示索引是没有用到的。

但是如果我把sql查询条件做修改索引即可用到。

select COUNT(a.id) ucount from table_a a 
  where a.add_time >= '2017-04-01 00:00:00' and a.add_time <= '2017-04-06 23:59:59';
# 耗时0.00s。
+----+-------------+-------+-------+---------------+-------------+---------+------+------+-------------+
| id | select_type | table | type  | possible_keys | key         | key_len | ref  | rows | Extra       |
+----+-------------+-------+-------+---------------+-------------+---------+------+------+-------------+
|  1 | SIMPLE      | a    | range | idx_addTime   | idx_addTime | 8       | NULL | 1625 | Using where |
+----+-------------+-------+-------+---------------+-------------+---------+------+------+-------------+

当查询条件是'2015-06-01 00:00:00' - '2017-04-06 23:59:59' 时会命中a表中大部分数据;在这种情况下,Mysql会放弃使用索引改为全表搜索

这样处理的原因是如果命中索引大多数数据,那么使用索引会造成大量随机I/O操作,这样是低效的;所以更好的办法是直接全表顺序扫描。

优先队列

Java中我们会经常使用到PriorityQueue(优先队列),那么优先队列内部是如何实现,原理又是什么呢。

一篇很棒的参考文档

堆(英语:Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。在队列中,调度程序反复提取队列中第一个作业并运行,因为实际情况中某些时间较短的任务将等待很长时间才能结束,或者某些不短小,但具有重要性的作业,同样应当具有优先权。堆即为解决此类问题设计的一种数据结构。 -- 维基百科

n个元素序列{k1,k2...ki...kn},当且仅当满足下列关系时称之为堆:
(ki <= k2i,ki <= k2i+1)或者(ki >= k2i,ki >= k2i+1), (i = 1,2,3,4...n/2)

堆的实现通过构造二叉堆(binary heap),实为二叉树的一种;由于其应用的普遍性,当不加限定时,均指该数据结构的这种实现。这种数据结构具有以下性质。

  1. 任意节点小于(或大于)它的所有后裔,最小元(或最大元)在堆的根上(堆序性)。
  2. 堆总是一棵完全树。即除了最底层,其他层的节点都被元素填满,且最底层尽可能地从左到右填入。

对一个优先队列依次添加3,2,1元素。


示例.png

Intellij Idea使用

Key Promoter

快捷键总是记住了然后又忘记了,这个插件起了很好的提示作用;当你用鼠标进行某个操作时会提示你如何使用快捷键实现同样的操作。


编译操作.png

它会提示你同样的操作该使用什么快捷键来实现,同时告诉你用鼠标执行了多少次。

Cmd + Shift + a

enter action or option name:想知道某个快捷键操作,输入关键字就会提示你。
比如我要找到如何删除行快捷键。


删除一行.png

Git

受保护的分支
protected_branch.png

开发中,如果我们每个开发人员都可以对线上分支进行修改合并,那么可能会导致各种问题;把分支设置为受保护的即可解决这个问题。
Git角色:

名称 说明
Owner Git系统管理员
Master Git项目管理员
Developer Git项目开发人员
Reporter Git项目测试人员
Guest 访客

developer开发人员可以在开发完毕后发出Merge Request请求,然后由Master或Owner来审核决定是否通过。

tag标签

在我们发布一个新版本时,对当前版本做一个标记-tag,区别于其它提交。

git tag # 查看标签
git tag -l '1.*' # 搜索以1.开头的所有标签
git tag -a 1.0 -m 'my version 1.0' # 包含备注的标签 指定标签名字 与标签说明
git show 1.0 # 显示指定标签信息
git tag 1.0 # 轻量级标签 没有提交信息
git push origin 1.0/--tags # 推送标签到远程

相关文章

  • 周记 2017 4.3 - 4.9

    Mysql慢查询 首先b表并不参与筛选条件,去除left join。 给a表add_time添加索引,但是添加后同...

  • 2017-4.3-4.9周训练记录

    4.3周一 放假休息。 4.4周二 晨跑10km,分了两段。在深圳第一次看到桃花,无意间找到一株。 臀腿日: 1....

  • 2017年4.3-4.9周总结

    这一周我做了哪些事情? 晨起——朝夕日历 从周一到周日每天6:00起床,虽然有几天早晨闹铃响的时候还睡得正香,但是...

  • 周复盘4.3~4.9

    小伙伴复盘都是用的文字图片,也来试一下~ 任务完成率88.89% 突破新高!恭喜恭喜 22、23习题真心需要理解 ...

  • 总结4.3—4.9

    线上上课 指导思想:开会所要求的,放慢速度,夯实基础。 现状和实际情况:线上上课,与线下上课差别与特点。 线上上课...

  • 一周复盘(4.3~4.9)

    如果你的心中有一团火,你应该让它燃烧得更旺。 2017年周总结14/52 一、#焕心焕新#第四期打卡项目: 红皇后...

  • 四月第一周周总结

    4.3---4.9每日总结 周一(4.3) 每天三件事 1.阅读《卡耐基情商课》 卡耐基的书籍很朴实,它并不是所谓...

  • 开发周记及问答系列集v0.1

    开发周记(2017/3/26-2017/4/2) 开发周记(2017/4/3-2017/4/9) 开发周记(201...

  • 工作清单(4.3——4.9)

    1、语文课《青山处处埋忠骨》《军神》,这两课涉及的历史资料较多,没有资料恰当的铺垫,学生很难理解文中人物的内心世界...

  • 琐事记2017‖4.9

    今天天气不怎么好,下着小雨。早上,做完晨练,敷了胳膊,煮了一碗意大利面,淋上一点橄榄油,配上一点瘦肉和蔬菜做早餐。...

网友评论

    本文标题:周记 2017 4.3 - 4.9

    本文链接:https://www.haomeiwen.com/subject/skuhattx.html