ES6結尾——sql查詢分析補一下
一、背景
關於ES6與JS呢,咱們已經談了不少了,其實之前講的關於ES6的東西,還有更多有魅力的東西,筆者能力有限,在這裡跟大家說抱歉啦。ES6也還有更多的知識,今天在這裡跟大家說一下。
之前sql查詢的explain分析還剩最後一列沒跟大家說,今天在這裡也給大家結一下。
二、核心內容
1.sql查詢分析——extra擴展欄位解析
主要包含不適合在其他列中顯示但十分重要的額外信息。
① using filesort:產生了文件內排序。影響sql運行速度。屬於壞的情況
② using temporary:使用了臨時表保存中間結果。影響sql運行速度。常見於含有order by排序中和group by分組的sql中。屬於壞的情況
③ using index:表示相應的select操作使用了覆蓋索引。影響sql運行速度,屬於好的情況。
這種情況包含以下兩種可能:
1.有「using where」:表示索引被用來執行索引鍵值的查找。
2.沒有「using where」:表示索引用來讀取數據而非執行查找。
關於覆蓋索引:select數據列只用從索引中就能取得,不必讀取數據行(顧名思義查詢的行被索引覆蓋。速度非常快,因為索引是在內存中,不需要讀磁碟IO)
上面三種情況在擴展欄位中較為重要,以下幾種也是可能的值,但是相對不重要。
④ using where ⑤ using join buffer
⑥ impossible where:where子句中包含值總是為false的條件,不能用來獲取元組(簡單說:where條件永遠為錯)
⑦ select tables optimized away ⑧ distinct等等。細節性問題大家自行學習哈
索引分析sql的一些技巧:
1.單表查詢中:對經常查詢欄位添加索引構成覆蓋索引,顯著提高查詢速度。
2.多表關聯中:一般給表的外鍵添加為索引。在連接查詢中,例如:左連接查詢索引外鍵則加在右表上(相反加)。而有時候發現給外鍵加了索引,索引也沒有生效,這時問題有可能出在連接順序上,只需改變連接順序即可。
2.關於ES6與JS還有幾個對象想跟大家說一聲主要是如下幾個:
1.數組對象:定義[]
2.map對象:定義new Map()
3.set對象:定義new Set()
。。。
可以看出JS真的是在慢慢向java靠攏,而關於這些新的對象的使用與java中也基本類似,只是在JS中操作會比java中更簡單一點。推薦大家學習這幾個東西去微軟官方API中學習,講的非常詳細。地址如下:
https://msdn.microsoft.com/zh-cn/library/htbw4ywd(v=vs.94).aspx
關於js中API的使用,如果忘記可以去這裡面查詢。
三、總結
關於ES6與JS的一些日常用法,今天就算暫時說完啦。關於編程序最好的學習方法就是多實踐,希望大家可以多動手,多實現,人人成為碼神。
大家還想看哪方面知識呢?趕緊關注我後台私信我吧!!
原創不易,希望大家多多支持,點點關注,小編感激不盡。謝謝大家。
TAG:熊孩子碼農之路 |