色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

全網最全面、最細致的EXPLAIN解讀

數據分析與開發 ? 來源:數據分析與開發 ? 作者:數據分析與開發 ? 2020-10-30 16:39 ? 次閱讀

EXPLAIN作為MySQL的性能分析神器,讀懂其結果是很有必要的,然而我在各種搜索引擎上竟然找不到特別完整的解讀。都是只有重點,沒有細節(例如type的取值不全、Extra缺乏完整的介紹等)。

所以,我肝了將近一個星期,整理了一下。這應該是全網最全面、最細致的EXPLAIN解讀文章了,下面是全文。

文章比較長,建議收藏。

TIPS

本文基于MySQL 8.0編寫,理論支持MySQL 5.0及更高版本。

EXPLAIN使用

explain可用來分析SQL的執行計劃。格式如下:

{EXPLAIN | DESCRIBE | DESC} tbl_name [col_name | wild] {EXPLAIN | DESCRIBE | DESC} [explain_type] {explainable_stmt | FOR CONNECTION connection_id} {EXPLAIN | DESCRIBE | DESC} ANALYZE select_statement explain_type: { FORMAT = format_name} format_name: { TRADITIONAL | JSON | TREE} explainable_stmt: { SELECT statement | TABLE statement | DELETE statement | INSERT statement | REPLACE statement | UPDATE statement}

示例:

EXPLAIN format = TRADITIONAL json SELECT tt.TicketNumber, tt.TimeIn, tt.ProjectReference, tt.EstimatedShipDate, tt.ActualShipDate, tt.ClientID, tt.ServiceCodes, tt.RepetitiveID, tt.CurrentProcess, tt.CurrentDPPerson, tt.RecordVolume, tt.DPPrinted, et.COUNTRY, et_1.COUNTRY, do.CUSTNAME FROM tt, et, et AS et_1, do WHERE tt.SubmitTime IS NULL AND tt.ActualPC = et.EMPLOYID AND tt.AssignedPC = et_1.EMPLOYID AND tt.ClientID = do.CUSTNMBR;

結果輸出展示:

字段 format=json時的名稱 含義
id select_id 該語句的唯一標識
select_type 查詢類型
table table_name 表名
partitions partitions 匹配的分區
type access_type 聯接類型
possible_keys possible_keys 可能的索引選擇
key key 實際選擇的索引
key_len key_length 索引的長度
ref ref 索引的哪一列被引用了
rows rows 估計要掃描的行
filtered filtered 表示符合查詢條件的數據百分比
Extra 沒有 附加信息

結果解讀

id

該語句的唯一標識。如果explain的結果包括多個id值,則數字越大越先執行;而對于相同id的行,則表示從上往下依次執行。

select_type

查詢類型,有如下幾種取值:

查詢類型 作用
SIMPLE 簡單查詢(未使用UNION或子查詢)
PRIMARY 最外層的查詢
UNION 在UNION中的第二個和隨后的SELECT被標記為UNION。如果UNION被FROM子句中的子查詢包含,那么它的第一個SELECT會被標記為DERIVED。
DEPENDENT UNION UNION中的第二個或后面的查詢,依賴了外面的查詢
UNION RESULT UNION的結果
SUBQUERY 子查詢中的第一個 SELECT
DEPENDENT SUBQUERY 子查詢中的第一個 SELECT,依賴了外面的查詢
DERIVED 用來表示包含在FROM子句的子查詢中的SELECT,MySQL會遞歸執行并將結果放到一個臨時表中。MySQL內部將其稱為是Derived table(派生表),因為該臨時表是從子查詢派生出來的
DEPENDENT DERIVED 派生表,依賴了其他的表
MATERIALIZED 物化子查詢
UNCACHEABLE SUBQUERY 子查詢,結果無法緩存,必須針對外部查詢的每一行重新評估
UNCACHEABLE UNION UNION屬于UNCACHEABLE SUBQUERY的第二個或后面的查詢

table

表示當前這一行正在訪問哪張表,如果SQL定義了別名,則展示表的別名

partitions

當前查詢匹配記錄的分區。對于未分區的表,返回null

type

連接類型,有如下幾種取值,性能從好到壞排序如下:

1 system:該表只有一行(相當于系統表),system是const類型的特例

2 const:針對主鍵或唯一索引的等值查詢掃描, 最多只返回一行數據. const 查詢速度非常快, 因為它僅僅讀取一次即可

3 eq_ref:當使用了索引的全部組成部分,并且索引是PRIMARY KEY或UNIQUE NOT NULL 才會使用該類型,性能僅次于system及const。

-- 多表關聯查詢,單行匹配SELECT * FROM ref_table,other_table WHERE ref_table.key_column=other_table.column; -- 多表關聯查詢,聯合索引,多行匹配SELECT * FROM ref_table,other_table WHERE ref_table.key_column_part1=other_table.column AND ref_table.key_column_part2=1;

4 ref:當滿足索引的最左前綴規則,或者索引不是主鍵也不是唯一索引時才會發生。如果使用的索引只會匹配到少量的行,性能也是不錯的。

-- 根據索引(非主鍵,非唯一索引),匹配到多行SELECT * FROM ref_table WHERE key_column=expr; -- 多表關聯查詢,單個索引,多行匹配SELECT * FROM ref_table,other_table WHERE ref_table.key_column=other_table.column; -- 多表關聯查詢,聯合索引,多行匹配SELECT * FROM ref_table,other_table WHERE ref_table.key_column_part1=other_table.column AND ref_table.key_column_part2=1;

TIPS

最左前綴原則,指的是索引按照最左優先的方式匹配索引。比如創建了一個組合索引(column1, column2, column3),那么,如果查詢條件是:

?WHERE column1 = 1、WHERE column1= 1 AND column2 = 2、WHERE column1= 1 AND column2 = 2 AND column3 = 3 都可以使用該索引;?WHERE column2 = 2、WHERE column2 = 1 AND column3 = 3就無法匹配該索引。

5 fulltext:全文索引

6 ref_or_null:該類型類似于ref,但是MySQL會額外搜索哪些行包含了NULL。這種類型常見于解析子查詢

SELECT * FROM ref_table WHERE key_column=expr OR key_column IS NULL;

7 index_merge:此類型表示使用了索引合并優化,表示一個查詢里面用到了多個索引

8 unique_subquery:該類型和eq_ref類似,但是使用了IN查詢,且子查詢是主鍵或者唯一索引。例如:

value IN (SELECT primary_key FROM single_table WHERE some_expr)

9 index_subquery:和unique_subquery類似,只是子查詢使用的是非唯一索引

value IN (SELECT key_column FROM single_table WHERE some_expr)

10 range:范圍掃描,表示檢索了指定范圍的行,主要用于有限制的索引掃描。比較常見的范圍掃描是帶有BETWEEN子句或WHERE子句里有>、>=、<、<=、IS NULL、<=>、BETWEEN、LIKE、IN()等操作符。

SELECT * FROM tbl_name WHERE key_column BETWEEN 10 and 20; SELECT * FROM tbl_name WHERE key_column IN (10,20,30);

11 index:全索引掃描,和ALL類似,只不過index是全盤掃描了索引的數據。當查詢僅使用索引中的一部分列時,可使用此類型。有兩種場景會觸發:

?

如果索引是查詢的覆蓋索引,并且索引查詢的數據就可以滿足查詢中所需的所有數據,則只掃描索引樹。此時,explain的Extra 列的結果是Using index。index通常比ALL快,因為索引的大小通常小于表數據。

?

按索引的順序來查找數據行,執行了全表掃描。此時,explain的Extra列的結果不會出現Uses index。

?

ALL:全表掃描,性能最差。

possible_keys

展示當前查詢可以使用哪些索引,這一列的數據是在優化過程的早期創建的,因此有些索引可能對于后續優化過程是沒用的。

key

表示MySQL實際選擇的索引

key_len

索引使用的字節數。由于存儲格式,當字段允許為NULL時,key_len比不允許為空時大1字節。

key_len計算公式:https://www.cnblogs.com/gomysql/p/4004244.html[1]

ref

表示將哪個字段或常量和key列所使用的字段進行比較。

如果ref是一個函數,則使用的值是函數的結果。要想查看是哪個函數,可在EXPLAIN語句之后緊跟一個SHOW WARNING語句。

rows

MySQL估算會掃描的行數,數值越小越好。

filtered

表示符合查詢條件的數據百分比,最大100。用rows × filtered可獲得和下一張表連接的行數。例如rows = 1000,filtered = 50%,則和下一張表連接的行數是500。

TIPS

在MySQL 5.7之前,想要顯示此字段需使用explain extended命令;

MySQL.5.7及更高版本,explain默認就會展示filtered

Extra

展示有關本次查詢的附加信息,取值如下:

1 Child of 'table' pushed join@1

此值只會在NDB Cluster下出現。

2 const row not found

例如查詢語句SELECT ... FROM tbl_name,而表是空的

3 Deleting all rows

對于DELETE語句,某些引擎(例如MyISAM)支持以一種簡單而快速的方式刪除所有的數據,如果使用了這種優化,則顯示此值

4 Distinct

查找distinct值,當找到第一個匹配的行后,將停止為當前行組合搜索更多行

5 FirstMatch(tbl_name)

當前使用了半連接FirstMatch策略,詳見https://mariadb.com/kb/en/firstmatch-strategy/[2],翻譯https://www.cnblogs.com/abclife/p/10895624.html[3]

6 Full scan on NULL key

子查詢中的一種優化方式,在無法通過索引訪問null值的時候使用

7 Impossible HAVING

HAVING子句始終為false,不會命中任何行

8 Impossible WHERE

WHERE子句始終為false,不會命中任何行

9 Impossible WHERE noticed after reading const tables

MySQL已經讀取了所有const(或system)表,并發現WHERE子句始終為false

10 LooseScan(m..n)

當前使用了半連接LooseScan策略,詳見https://mariadb.com/kb/en/loosescan-strategy/[4],翻譯http://www.javacoder.cn/?p=39[5]

11 No matching min/max row

沒有任何能滿足例如 SELECT MIN(...) FROM ... WHERE condition 中的condition的行

12 no matching row in const table

對于關聯查詢,存在一個空表,或者沒有行能夠滿足唯一索引條件

13 No matching rows after partition pruning

對于DELETE或UPDATE語句,優化器在partition pruning(分區修剪)之后,找不到要delete或update的內容

14 No tables used

當此查詢沒有FROM子句或擁有FROM DUAL子句時出現。例如:explain select 1

15 Not exists

MySQL能對LEFT JOIN優化,在找到符合LEFT JOIN的行后,不會為上一行組合中檢查此表中的更多行。例如:

SELECT * FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.id IS NULL;

假設t2.id定義成了NOT NULL,此時,MySQL會掃描t1,并使用t1.id的值查找t2中的行。如果MySQL在t2中找到一個匹配的行,它會知道t2.id永遠不會為NULL,并且不會掃描t2中具有相同id值的其余行。也就是說,對于t1中的每一行,MySQL只需要在t2中只執行一次查找,而不考慮在t2中實際匹配的行數。

在MySQL 8.0.17及更高版本中,如果出現此提示,還可表示形如 NOT IN (subquery) 或 NOT EXISTS (subquery) 的WHERE條件已經在內部轉換為反連接。這將刪除子查詢并將其表放入最頂層的查詢計劃中,從而改進查詢的開銷。通過合并半連接和反聯接,優化器可以更加自由地對執行計劃中的表重新排序,在某些情況下,可讓查詢提速。你可以通過在EXPLAIN語句后緊跟一個SHOW WARNING語句,并分析結果中的Message列,從而查看何時對該查詢執行了反聯接轉換。

Note

兩表關聯只返回主表的數據,并且只返回主表與子表沒關聯上的數據,這種連接就叫反連接

16 Plan isn't ready yet

使用了EXPLAIN FOR CONNECTION,當優化器尚未完成為在指定連接中為執行的語句創建執行計劃時, 就會出現此值。

17 Range checked for each record (index map: N)

MySQL沒有找到合適的索引去使用,但是去檢查是否可以使用range或index_merge來檢索行時,會出現此提示。index map N索引的編號從1開始,按照與表的SHOW INDEX所示相同的順序。索引映射值N是指示哪些索引是候選的位掩碼值。例如0x19(二進制11001)的值意味著將考慮索引1、4和5。

示例:下面例子中,name是varchar類型,但是條件給出整數型,涉及到隱式轉換。圖中t2也沒有用到索引,是因為查詢之前我將t2中name字段排序規則改為utf8_bin導致的鏈接字段排序規則不匹配。

explain select a.* from t1 a left join t2 bon t1.name = t2.namewhere t2.name = 2;

結果:

id select_type table partitions type possible_keys key key_len ref rows filtered Extra
1 SIMPLE t2 NULL ALL idx_name NULL NULL NULL 9 11.11 Using where
1 SIMPLE t1 NULL ALL idx_name NULL NULL NULL 5 11.11 Range checked for each record (index map: 0x8)

18 Recursive

出現了遞歸查詢。詳見“WITH (Common Table Expressions)”[6]

19 Rematerialize

用得很少,使用類似如下SQL時,會展示Rematerialize

SELECT ...FROM t, LATERAL (derived table that refers to t) AS dt...

20 Scanned N databases

表示在處理INFORMATION_SCHEMA表的查詢時,掃描了幾個目錄,N的取值可以是0,1或者all。詳見“Optimizing INFORMATION_SCHEMA Queries”[7]

21 Select tables optimized away

優化器確定:①最多返回1行;②要產生該行的數據,要讀取一組確定的行,時會出現此提示。一般在用某些聚合函數訪問存在索引的某個字段時,優化器會通過索引直接一次定位到所需要的數據行完成整個查詢時展示,例如下面這條SQL。

explainselect min(id)from t1;

22 Skip_open_table, Open_frm_only, Open_full_table

這些值表示適用于INFORMATION_SCHEMA表查詢的文件打開優化;

23 Skip_open_table:無需打開表文件,信息已經通過掃描數據字典獲得

24 Open_frm_only:僅需要讀取數據字典以獲取表信息

25 Open_full_table:未優化的信息查找。表信息必須從數據字典以及表文件中讀取

26 Start temporary, End temporary

表示臨時表使用Duplicate Weedout策略,詳見https://mariadb.com/kb/en/duplicateweedout-strategy/[8],翻譯https://www.cnblogs.com/abclife/p/10895531.html[9]

27 unique row not found

對于形如 SELECT ... FROM tbl_name 的查詢,但沒有行能夠滿足唯一索引或主鍵查詢的條件

28 Using filesort

當Query 中包含 ORDER BY 操作,而且無法利用索引完成排序操作的時候,MySQL Query Optimizer 不得不選擇相應的排序算法來實現。數據較少時從內存排序,否則從磁盤排序。Explain不會顯示的告訴客戶端用哪種排序。官方解釋:“MySQL需要額外的一次傳遞,以找出如何按排序順序檢索行。通過根據聯接類型瀏覽所有行并為所有匹配WHERE子句的行保存排序關鍵字和行的指針來完成排序。然后關鍵字被排序,并按排序順序檢索行”

29 Using index

僅使用索引樹中的信息從表中檢索列信息,而不必進行其他查找以讀取實際行。當查詢僅使用屬于單個索引的列時,可以使用此策略。例如:

explain SELECT id FROM t

30 Using index condition

表示先按條件過濾索引,過濾完索引后找到所有符合索引條件的數據行,隨后用 WHERE 子句中的其他條件去過濾這些數據行。通過這種方式,除非有必要,否則索引信息將可以延遲“下推”讀取整個行的數據。詳見“Index Condition Pushdown Optimization”[10]。例如:

TIPS

?

MySQL分成了Server層和引擎層,下推指的是將請求交給引擎層處理。

?

理解這個功能,可創建所以INDEX (zipcode, lastname, firstname),并分別用如下指令,

SET optimizer_switch = 'index_condition_pushdown=off'; SET optimizer_switch = 'index_condition_pushdown=on';

開或者關閉索引條件下推,并對比:

explain SELECT * FROM people WHERE zipcode='95054' AND lastname LIKE '%etrunia%' AND address LIKE '%Main Street%';

的執行結果。

?

index condition pushdown從MySQL 5.6開始支持,是MySQL針對特定場景的優化機制,感興趣的可以看下https://blog.51cto.com/lee90/2060449[11]

31 Using index for group-by

數據訪問和 Using index 一樣,所需數據只須要讀取索引,當Query 中使用GROUP BY或DISTINCT 子句時,如果分組字段也在索引中,Extra中的信息就會是 Using index for group-by。詳見“GROUP BY Optimization”[12]

-- name字段有索引explain SELECT name FROM t1 group by name

32 Using index for skip scan

表示使用了Skip Scan。詳見Skip Scan Range Access Method[13]

33 Using join buffer (Block Nested Loop), Using join buffer (Batched Key Access)

使用Block Nested Loop或Batched Key Access算法提高join的性能。詳見https://www.cnblogs.com/chenpingzhao/p/6720531.html[14]

34 Using MRR

使用了Multi-Range Read優化策略。詳見“Multi-Range Read Optimization”[15]

35 Using sort_union(...), Using union(...), Using intersect(...)

這些指示索引掃描如何合并為index_merge連接類型。詳見“Index Merge Optimization”[16]。

36 Using temporary

為了解決該查詢,MySQL需要創建一個臨時表來保存結果。如果查詢包含不同列的GROUP BY和 ORDER BY子句,通常會發生這種情況。

-- name無索引explain SELECT name FROM t1 group by name

37 Using where

如果我們不是讀取表的所有數據,或者不是僅僅通過索引就可以獲取所有需要的數據,則會出現using where信息

explain SELECT * FROM t1 where id > 5

38 Using where with pushed condition

僅用于NDB

39 Zero limit

該查詢有一個limit 0子句,不能選擇任何行

explain SELECT name FROM resource_template limit 0

擴展的EXPLAIN

EXPLAIN可產生額外的擴展信息,可通過在EXPLAIN語句后緊跟一條SHOW WARNING語句查看擴展信息。

TIPS

?在MySQL 8.0.12及更高版本,擴展信息可用于SELECT、DELETE、INSERT、REPLACE、UPDATE語句;在MySQL 8.0.12之前,擴展信息僅適用于SELECT語句;?在MySQL 5.6及更低版本,需使用EXPLAIN EXTENDED xxx語句;而從MySQL 5.7開始,無需添加EXTENDED關鍵詞。

使用示例:

mysql> EXPLAIN SELECT t1.a, t1.a IN (SELECT t2.a FROM t2) FROM t1G*************************** 1. row *************************** id: 1 select_type: PRIMARY table: t1 type: indexpossible_keys: NULL key: PRIMARY key_len: 4 ref: NULL rows: 4 filtered: 100.00 Extra: Using index*************************** 2. row *************************** id: 2 select_type: SUBQUERY table: t2 type: indexpossible_keys: a key: a key_len: 5 ref: NULL rows: 3 filtered: 100.00 Extra: Using index2 rows in set, 1 warning (0.00 sec) mysql> SHOW WARNINGSG*************************** 1. row *************************** Level: Note Code: 1003Message: /* select#1 */ select `test`.`t1`.`a` AS `a`, (`test`.`t1`.`a`,`test`.`t1`.`a` in ( (/* select#2 */ select `test`.`t2`.`a` from `test`.`t2` where 1 having 1 ), (`test`.`t1`.`a` in on where ((`test`.`t1`.`a` = `materialized-subquery`.`a`))))) AS `t1.a IN (SELECT t2.a FROM t2)` from `test`.`t1`1 row in set (0.00 sec)

由于SHOW WARNING的結果并不一定是一個有效SQL,也不一定能夠執行(因為里面包含了很多特殊標記)。特殊標記取值如下:

1

自動生成的臨時表key

2(expr)

表達式(例如標量子查詢)執行了一次,并且將值保存在了內存中以備以后使用。對于包括多個值的結果,可能會創建臨時表,你將會看到的字樣

3(query fragment)

子查詢被轉換為EXISTS

4(query fragment)

這是一個內部優化器對象,對用戶沒有任何意義

5(query fragment)

使用索引查找來處理查詢片段,從而找到合格的行

6(condition, expr1, expr2)

如果條件是true,則取expr1,否則取expr2

7(expr)

驗證表達式不為NULL的測試

8(query fragment)

使用子查詢實現

9materialized-subquery.col_name

在內部物化臨時表中對col_name的引用,以保存子查詢的結果

10(query fragment)

使用主鍵來處理查詢片段,從而找到合格的行

11(expr)

這是一個內部優化器對象,對用戶沒有任何意義

12/* select#N */ select_stmt

SELECT與非擴展的EXPLAIN輸出中id=N的那行關聯

13outer_tables semi join (inner_tables)

半連接操作。inner_tables展示未拉出的表。詳見“Optimizing Subqueries, Derived Tables, and View References with Semijoin Transformations”[17]

14

表示創建了內部臨時表而緩存中間結果

當某些表是const或system類型時,這些表中的列所涉及的表達式將由優化器盡早評估,并且不屬于所顯示語句的一部分。但是,當使用FORMAT=JSON時,某些const表的訪問將顯示為ref。

估計查詢性能

多數情況下,你可以通過計算磁盤的搜索次數來估算查詢性能。對于比較小的表,通常可以在一次磁盤搜索中找到行(因為索引可能已經被緩存了),而對于更大的表,你可以使用B-tree索引進行估算:你需要進行多少次查找才能找到行:log(row_count) / log(index_block_length / 3 * 2 / (index_length + data_pointer_length)) + 1

在MySQL中,index_block_length通常是1024字節,數據指針一般是4字節。比方說,有一個500,000的表,key是3字節,那么根據計算公式log(500,000)/log(1024/3*2/(3+4)) + 1 = 4次搜索。

該索引將需要500,000 * 7 * 3/2 = 5.2MB的存儲空間(假設典型的索引緩存的填充率是2/3),因此你可以在內存中存放更多索引,可能只要一到兩個調用就可以找到想要的行了。

但是,對于寫操作,你需要四個搜索請求來查找在何處放置新的索引值,然后通常需要2次搜索來更新索引并寫入行。

前面的討論并不意味著你的應用性能會因為log N而緩慢下降。只要內容被OS或MySQL服務器緩存,隨著表的變大,只會稍微變慢。在數據量變得太大而無法緩存后,將會變慢很多,直到你的應用程序受到磁盤搜索約束(按照log N增長)。為了避免這種情況,可以根據數據的增長而增加key的。對于MyISAM表,key的緩存大小由名為key_buffer_size的系統變量控制,詳見Section 5.1.1, “Configuring the Server”[18]

參考文檔

?EXPLAIN Output Format[19]?EXPLAIN Statement[20]?Extended EXPLAIN Output Format[21]?Estimating Query Performance[22]?MySQL中explain執行計劃中額外信息字段(Extra)詳解[23]?explain參數詳解[24]?What does eq_ref and ref types mean in MySQL explain[25]?面試官:不會看 Explain執行計劃,簡歷敢寫 SQL 優化?

責任編輯:xj

原文標題:全網最全 | MySQL EXPLAIN 完全解讀

文章出處:【微信公眾號:數據分析與開發】歡迎添加關注!文章轉載請注明出處。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7048

    瀏覽量

    89068
  • MySQL
    +關注

    關注

    1

    文章

    813

    瀏覽量

    26590

原文標題:全網最全 | MySQL EXPLAIN 完全解讀

文章出處:【微信號:DBDevs,微信公眾號:數據分析與開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    MOSFET參數解讀

    SGT-MOSFET各項參數解讀
    發表于 12-30 14:15 ?1次下載

    三、麥克風陣列類型及分類之細致梳理

    麥克風陣列,作為聲學領域的關鍵技術,擁有多種類型,每種類型都以獨特的排列方式和卓越的性能,在不同的應用場景中發揮著重要作用,下面將為您細致梳理其類型與分類,展現麥克風陣列的奇妙世界。
    的頭像 發表于 12-29 00:00 ?20次閱讀
    三、麥克風陣列類型及分類之<b class='flag-5'>細致</b>梳理

    PCM1680 does not support a board-to-board interface不支持板對板的是怎么解讀

    The PCM1680 does not support a board-to-board interface不支持板對板的是怎么解讀
    發表于 12-11 07:31

    全網精選 中服云全網精選工業網關廠商名錄

    精準選型,加速數字化轉型進程,中服云經過一個多月全面細致的收集與分析,精心整理了一份全網優質工業網關廠商名錄,旨在為企業打造一條通往智能制造的“高速通道”。 在這個名錄中,我們匯聚了來自國內優質的工業網關制
    的頭像 發表于 11-11 10:48 ?188次閱讀
    <b class='flag-5'>全網</b>精選  中服云<b class='flag-5'>全網</b>精選工業網關廠商名錄

    京準電鐘解讀:PTP時鐘同步系統及應用是什么?

    京準電鐘解讀:PTP時鐘同步系統及應用是什么?
    的頭像 發表于 10-31 09:35 ?265次閱讀
    京準電鐘<b class='flag-5'>解讀</b>:PTP時鐘同步系統及應用是什么?

    全面解讀北美PTCRB認證與FCC之間的關聯性

    也許很多人都分別知道PTCRB認證跟FCC認證,但是卻不明白這兩者之間有什么聯系。本篇內容英利檢測將針對這點進行深入解讀,供各位客戶參考。1、PTCRB認證與FCC的互補性:PTCRB認證主要關注
    的頭像 發表于 09-03 17:24 ?373次閱讀
    <b class='flag-5'>全面</b><b class='flag-5'>解讀</b>北美PTCRB認證與FCC之間的關聯性

    全網種類最全面的過壓保護+過流保護(OVP+OCP)選型攻略盤點

    什么是OVP和OCP?OVP(OCP)全稱OverVoltage(Current)Protection,即過壓和過流保護,常應用于電子產品中電源輸入口處,防止輸入端電壓發生異常過高損壞電子產品。OVP+OCP關鍵性能?最大直流耐壓?OVP閾值及精度?最大直流耐壓插拔?最大負載電流?OCP閾值及精度?OVP關斷恢復模式?OCP關斷恢復模式?導通阻抗大小?開關E
    的頭像 發表于 08-08 08:17 ?4126次閱讀
    <b class='flag-5'>全網</b>種類<b class='flag-5'>最全面</b>的過壓保護+過流保護(OVP+OCP)選型攻略盤點

    解讀MIPI A-PHY與車載Serdes芯片技術與測試

    上一期,《汽車芯片標準體系建設指南》技術解讀與功率芯片測量概覽中,我們給大家介紹了工信部印發的《汽車芯片標準體系建設指南》涉及到的重點芯片與測試領域解讀,本期繼續給大家做延展,我們解讀的是MIPI A-PHY與車載Serdes芯
    的頭像 發表于 07-24 10:14 ?2876次閱讀
    <b class='flag-5'>解讀</b>MIPI A-PHY與車載Serdes芯片技術與測試

    最全開關電源傳導與輻射超標整改方案

    電子發燒友網站提供《最全開關電源傳導與輻射超標整改方案.pdf》資料免費下載
    發表于 07-23 12:31 ?16次下載

    最全!2024年并網及儲能新國標解讀

    詳細解讀,包括2024年已經或者即將執行的標準,匯總如下: 1 GB_T 29319-2024 《光伏發電系統接入配電網技術規定》解讀 1.1 適應范圍 適用于通過10kV及以下電壓等級、三相并網的新建或改(擴)建光伏發電系統的接入、調試和運行。配置儲能
    的頭像 發表于 07-04 13:49 ?3493次閱讀
    <b class='flag-5'>最全</b>!2024年并網及儲能新國標<b class='flag-5'>解讀</b>

    最全光纖涂覆系列技術分享(剝除、切割、熔接、涂覆一體化)

    最全光纖涂覆系列技術分享(剝除、切割、熔接、涂覆一體化)
    發表于 06-06 11:38 ?0次下載

    一加618燃價到底:三大熱門機型全網補貼5億,全能體驗、全面普及

    5 月 20 日晚,一加手機正式開啟 618 全渠道優惠活動,三大熱門機型聯合平臺全網補貼 5 億元,一加 12、一加 Ace 3 直擊全年到底價,讓全能體驗一次到位,全面普及。活動期間,一加 12
    的頭像 發表于 05-21 14:33 ?504次閱讀

    EMC技術:基礎概念到應用的解讀?|深圳比創達電子.

    。通過本文的介紹,希望大家能對EMC技術有一個全面的了解,并在實際應用中更加重視EMC技術的重要性和必要性。綜上所述,相信通過本文的描述,各位對EMC技術:基礎概念到應用的解讀都有一定了解了吧,有疑問
    發表于 03-11 11:59

    EMC技術:基礎概念到應用的解讀

    EMC技術:基礎概念到應用的解讀?|深圳比創達電子
    的頭像 發表于 03-11 11:55 ?588次閱讀
    EMC技術:基礎概念到應用的<b class='flag-5'>解讀</b>?

    各類傳感器原理動態圖

    43張動圖!全網最全的傳感器工作原理
    的頭像 發表于 01-26 16:25 ?1904次閱讀
    各類傳感器原理動態圖
    主站蜘蛛池模板: 99国产精品久久| 亚洲精品永久免费| 亚洲AV 中文字幕 国产 欧美| 8X拨牐拨牐X8免费视频8| 果冻传媒在线观看资源七夕| 色网址在线观看| 啊轻点灬大JI巴又大又粗| 男同志china免费视频| 中国人泡妞www免费| 久久视频这里只精品6国产| 亚洲中文日韩日本在线视频| 国产午夜人成在线视频麻豆| 为什么丈夫插我我却喜欢被打着插| 成人在线视频播放| 日韩高清特级特黄毛片| WRITEAS检查身体| 日本午夜视频在线| 吃胸亲吻吃奶摸下面免费视频| 人人舔人人爱| 第一次玩老妇真实经历| 色婷婷五月综合中文字幕| 国产99精品视频一区二区三区| 王晶三级作品| 黑丝美女被人操| 最新国产av.在线视频| 美女诱点第6季| 99精品成人无码A片观看金桔| 久久免费看少妇高潮A片特爽| 中文字幕无码A片久久| 蜜柚在线观看免费高清官网视频| av老司机色爱区综合| 日本一本2017国产| 国产午夜精品AV一区二区麻豆| 亚洲综合香蕉在线视频| 久久有码中文字幕| 99久久香蕉| 为什么丈夫插我我却喜欢被打着插| 国产一区二区在线免费观看| 一本道色播| 欧美丰满少妇久久无码精品| 国产1广场舞丰满老女偷|