周記 2017 4.3 - 4.9

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 |
+----+-------------+-------+------+---------------+------+---------+------+-------+-------------+
# 執(zhí)行計劃中顯示索引是沒有用到的。

但是如果我把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表中大部分數(shù)據(jù);在這種情況下度气,Mysql會放棄使用索引改為全表搜索割按。

這樣處理的原因是如果命中索引大多數(shù)數(shù)據(jù),那么使用索引會造成大量隨機I/O操作磷籍,這樣是低效的适荣;所以更好的辦法是直接全表順序掃描。

優(yōu)先隊列

Java中我們會經(jīng)常使用到PriorityQueue(優(yōu)先隊列)院领,那么優(yōu)先隊列內(nèi)部是如何實現(xiàn)弛矛,原理又是什么呢。

一篇很棒的參考文檔

堆(英語:Heap)是計算機科學中一類特殊的數(shù)據(jù)結(jié)構(gòu)的統(tǒng)稱比然。堆通常是一個可以被看做一棵樹的數(shù)組對象丈氓。在隊列中,調(diào)度程序反復提取隊列中第一個作業(yè)并運行强法,因為實際情況中某些時間較短的任務(wù)將等待很長時間才能結(jié)束万俗,或者某些不短小,但具有重要性的作業(yè)饮怯,同樣應(yīng)當具有優(yōu)先權(quán)闰歪。堆即為解決此類問題設(shè)計的一種數(shù)據(jù)結(jié)構(gòu)。 -- 維基百科

n個元素序列{k1,k2...ki...kn},當且僅當滿足下列關(guān)系時稱之為堆:
(ki <= k2i,ki <= k2i+1)或者(ki >= k2i,ki >= k2i+1), (i = 1,2,3,4...n/2)

堆的實現(xiàn)通過構(gòu)造二叉堆(binary heap)蓖墅,實為二叉樹的一種库倘;由于其應(yīng)用的普遍性,當不加限定時置媳,均指該數(shù)據(jù)結(jié)構(gòu)的這種實現(xiàn)于樟。這種數(shù)據(jù)結(jié)構(gòu)具有以下性質(zhì)。

  1. 任意節(jié)點小于(或大于)它的所有后裔拇囊,最小元(或最大元)在堆的根上(堆序性)迂曲。
  2. 堆總是一棵完全樹。即除了最底層寥袭,其他層的節(jié)點都被元素填滿路捧,且最底層盡可能地從左到右填入。

對一個優(yōu)先隊列依次添加3传黄,2杰扫,1元素。


示例.png

Intellij Idea使用

Key Promoter

快捷鍵總是記住了然后又忘記了,這個插件起了很好的提示作用;當你用鼠標進行某個操作時會提示你如何使用快捷鍵實現(xiàn)同樣的操作。


編譯操作.png

它會提示你同樣的操作該使用什么快捷鍵來實現(xiàn)免绿,同時告訴你用鼠標執(zhí)行了多少次凡伊。

Cmd + Shift + a

enter action or option name:想知道某個快捷鍵操作零渐,輸入關(guān)鍵字就會提示你。
比如我要找到如何刪除行快捷鍵系忙。


刪除一行.png

Git

受保護的分支
protected_branch.png

開發(fā)中诵盼,如果我們每個開發(fā)人員都可以對線上分支進行修改合并,那么可能會導致各種問題银还;把分支設(shè)置為受保護的即可解決這個問題风宁。
Git角色:

名稱 說明
Owner Git系統(tǒng)管理員
Master Git項目管理員
Developer Git項目開發(fā)人員
Reporter Git項目測試人員
Guest 訪客

developer開發(fā)人員可以在開發(fā)完畢后發(fā)出Merge Request請求,然后由Master或Owner來審核決定是否通過蛹疯。

tag標簽

在我們發(fā)布一個新版本時戒财,對當前版本做一個標記-tag,區(qū)別于其它提交苍苞。

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 # 推送標簽到遠程
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末固翰,一起剝皮案震驚了整個濱河市狼纬,隨后出現(xiàn)的幾起案子羹呵,更是在濱河造成了極大的恐慌,老刑警劉巖疗琉,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冈欢,死亡現(xiàn)場離奇詭異,居然都是意外死亡盈简,警方通過查閱死者的電腦和手機凑耻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來柠贤,“玉大人香浩,你說我怎么就攤上這事【拭悖” “怎么了邻吭?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長宴霸。 經(jīng)常有香客問我囱晴,道長,這世上最難降的妖魔是什么瓢谢? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任畸写,我火速辦了婚禮,結(jié)果婚禮上氓扛,老公的妹妹穿的比我還像新娘枯芬。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布千所。 她就那樣靜靜地躺著翅楼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪真慢。 梳的紋絲不亂的頭發(fā)上毅臊,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天,我揣著相機與錄音黑界,去河邊找鬼管嬉。 笑死,一個胖子當著我的面吹牛朗鸠,可吹牛的內(nèi)容都是我干的蚯撩。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼烛占,長吁一口氣:“原來是場噩夢啊……” “哼胎挎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起忆家,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤犹菇,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后芽卿,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體揭芍,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年卸例,在試婚紗的時候發(fā)現(xiàn)自己被綠了称杨。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡筷转,死狀恐怖姑原,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情呜舒,我是刑警寧澤锭汛,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站阴绢,受9級特大地震影響店乐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜呻袭,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一眨八、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧左电,春花似錦廉侧、人聲如沸页响。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽闰蚕。三九已至,卻和暖如春连舍,著一層夾襖步出監(jiān)牢的瞬間没陡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工索赏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留盼玄,地道東北人。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓潜腻,卻偏偏與公主長得像埃儿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子融涣,可洞房花燭夜當晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容