mysql運維 讀書筆記 Mysql 讀書筆記

2021-10-18 19:17:17 字數 966 閱讀 3609

mysql儲存時間有兩種型別:datetime和timestamp。分別說一下兩者的區別。

datetime,以8位元組儲存時間,理論上可以從2023年儲存到2023年。並且沒有時區的概念,它儲存的就是乙個時間點的概念。

timestamp和datetime最主要的不同就是,它是以4個位元組儲存,由2023年開始,計算到目前的秒數,理論上的最大值是2023年。好處就是儲存的空間更少,還有乙個主要的區別是:timestamp跟系統的時區相關。

enum和set,列舉和集合。列舉表示乙個定義的集合中的任乙個值,集合表示乙個定義的集合中的乙個或多個值。區別在於enum並不會同時出現兩種情況,set會。需要特別說明的是,不要濫用enum,在定義的集合較大時,並不適合適應列舉。還有就是如果,定義的集合為{true,false}時,可以直接使用bool值。

標示符,標示列會用於和其他列進行比較。可以用作其他表的外來鍵,一般會選擇跟關聯表對應列相同的資料型別。一旦選擇好了標示符,就要確保關聯表的其他資料都使用相同的型別,混用標示符會造成不可預知的後果,就算表面上沒有問題,但是隱式操作時也可能會造成效能問題。一般建議使用整數作為標示符,原因是因為消耗小,速度快,並且支援auto-increment。

接下來說一下mysql的資料表設計,其實沒必要完全遵循所謂的規則,對於實際應用場景應該從實際出發。正規化和反正規化各自有他們的優缺點。

正規化表,一般較小,資料重複度比較低。更少使用distinct和group by。因此操作單個表速度更快。

缺點就是因為表結構太簡單,如果需要複雜資料就不可避免的要關聯。關聯查詢是個比較痛苦的點。

再介紹乙個資料表設計的陷阱:就是不要有太多的列。和行快取有關係,說是伺服器層和儲存引擎通過行快取copy資料,然後伺服器將行快取資料解析成列,過多的列對系統的消耗極大。這裡的過多是指幾百上千列。

還有,避免過多的關聯,最多不可以超過61個關聯。

寫的比較凌亂,因為就是想到什麼寫什麼,等這一章,看完,會結合這幾期讀書比較,完整的梳理一遍,寫一則章節總結。

Linux運維之道讀書筆記一

命令工具 一 基本命令 1 ls 顯示目錄和檔案資訊 ls l 檔案和目錄的詳細資訊 ls a 顯示隱藏檔案 ls lh 人性化顯示檔案容量 ls lt 按照文件的修改時間排序 從大到小 ls lrt相反 2 touch 建立或修改檔案時間 3 find 搜尋檔案或目錄 find name hell...

mysql讀書筆記

鎖 一 表鎖mysql中最基本的鎖策略,是開銷最小的策略。二 表鎖鎖定整張表。使用者在對錶進行寫操作前,需要先獲取寫鎖,阻塞其他使用者對該錶的所有讀寫操作。三 表鎖在沒有寫鎖時,使用者才會獲取讀鎖,讀鎖與寫鎖之間是不相互阻塞的 四 表鎖在特定場景中,表鎖的效能比較良好。五 表鎖寫鎖優先順序要高於讀鎖...

《Redis開發與運維》慢查詢分析 讀書筆記

慢查詢日誌就是系統在命令執行前後計算每條命令的執行時間,當超過了設定的閥值,就將這條命令的資訊 發生時間 耗時 命令詳細資訊等 記錄下來。客戶端命令執行生命週期 redis的客戶端分為四個部分,如下圖所示 注意 慢查詢只統計命令執行時間,所以沒有慢查詢並不代表客戶端沒有超時問題。慢查詢引數配置 修改...