1. 程式人生 > 其它 >記react 外掛使用webpack5打包的一些坑點

記react 外掛使用webpack5打包的一些坑點

資料庫

為什麼用自增列作為主鍵

如果使用非自增主鍵(如果身份證號或學號等),由於每次插入主鍵的值近似於隨機,因此每次新紀錄都要被插到現有索引頁得中間某個位置,此時MySQL不得不為了將新記錄插到合適位置而移動資料,甚至目標頁面可能已經被回寫到磁碟上而從快取中清掉,此時又要從磁碟上讀回來,這增加了很多開銷。同時頻繁的移動、分頁操作造成了大量的碎片,得到了不夠緊湊的索引結構。

Mysql會預設使用主鍵作為聚集索引,如果沒有索引,InnoDB會選擇內建6位元組長的ROWID作為隱含的聚集索引。

為什麼說B+比B樹更適合實際應用中作業系統的檔案索引和資料庫索引?

1、B+的磁碟讀寫代價更低。

B+的內部結點並沒有指向關鍵字具體資訊的指標,因此其內部結點相對B樹更小。一次性讀入記憶體中的需要查詢的關鍵字也就越多。相對來說IO讀寫次數也就降低了。

2、B+-tree的查詢效率更加穩定。

所有的記錄都儲存在葉子節點上面。所有關鍵字查詢的路徑長度相同,導致每一個數據的查詢效率相當。

3、葉子節點都是有序連結串列儲存的,更利於範圍儲存

MySQL InnoDB、Mysaim的特點?

Innodb是聚集索引,支援事務,支援外來鍵 ,支援行鎖,必須有唯一索引,適合修改刪除多的,回表查詢指的是innodb裡面非聚集索引的查詢。

Myisam是非聚集索引,葉子節點儲存指向資料的指標。不支援事務。

Mysql預設隔離級別

可重複讀(RR),由於之前mysql的binlog同步模式為statement,RC會產生資料不一致。當前binlog已經支援row的格式,可以選擇RC+ROW,作為mysql的隔離級別和日記格式

資料庫隔離級別是什麼?

A原子性(undo log)、C一致性(AID來保證)、I隔離性(加鎖、mvcc)、D永續性(redo log)

讀已提交(髒讀)、可重複讀(讀未提交)、序列化(幻讀)

MySQL主備同步的基本原理。 當slave連線到master的時候,master機器會為slave開啟binlog dump執行緒。當master 的 binlog發生變化的時候,binlog dump執行緒會通知slave,並將相應的binlog內容傳送給slave

如何優化資料庫效能(索引、分庫分表、批量操作、分頁演算法、升級硬碟SSD、業務優化、主從部署)

SQL什麼情況下不會使用索引

(不包含,不等於,函式)

MVCC

InnoDB中的實現主要是為了提高資料庫併發效能,用更好的方式去處理讀-寫衝突,做到即使有讀寫衝突時,也能做到不加鎖,非阻塞併發讀

通過readview 機制和 undo log 實現了讀不被阻塞,而且在一定程度上實現RC和RR,並且RR級別在大部分時候可以解決幻讀

資料庫事務的幾種粒度

表鎖、行鎖(通過索引來加鎖)只有通過索引條件檢索資料,InnoDB才使用行級鎖,否則,InnoDB將使用表鎖

如何解決高併發減庫存問題

如何從一張表中查出name欄位不包含“XYZ”的所有行?

not in where name LIKE "%XYZ%"

mysql主從同步延時分析 1.業務的持久化層的實現採用分庫架構,mysql服務可平行擴充套件,分散壓力。

2.單個庫讀寫分離,一主多從,主寫從讀,分散壓力。這樣從庫壓力比主庫高,保護主庫。

3.服務的基礎架構在業務和mysql之間加入memcache或者redis的cache層。降低mysql的讀壓力。

4.使用比主庫更好的硬體裝置作為slave,mysql壓力小,延遲自然會變小。

加鎖原則

拿MySql的InnoDB引擎來說,對於insert、update、delete等操作。會自動給涉及的資料加排他鎖;

對於一般的select語句,InnoDB不會加任何鎖,事務可以通過以下語句給顯示加共享鎖或排他鎖。

共享鎖:SELECT ... LOCK IN SHARE MODE;

排他鎖:SELECT ... FOR UPDATE;

Spring Cloud

Eureka的原始碼分析服務註冊和服務發現以及心跳機制和保護機制,對比eureka與zookeeper,什麼是CAP原則?

Ribbon原始碼分析和客服端負載均衡,客戶端負載均衡?服務端負載均衡? Ribbon核心元件IRule以及重寫IRule

Fegin原始碼分析和宣告式服務呼叫,Fegin負載均衡,Fegin如何與Hystrix結合使用? 有什麼問題?

Hystrix實現服務限流、降級,大型分散式專案服務雪崩如何解決? 服務熔斷到底是什麼?一線公司的解決方案

HystrixDoashboard如何實現自定義介面降級、監控資料、資料聚合等等

Zuul統一閘道器詳解、服務路由、過濾器使用等,從源頭來攔截掉一些不良請求

分散式配置中心Config詳解,如何與github或是其他自定義的git平臺結合、比如gitlab

分散式鏈路跟蹤詳解,串聯呼叫鏈,,讓Bug無處可藏,如何釐清微服務之間的依賴關係?如何跟蹤業務流的處理順序?