程式設計師面試之MySQL資料庫表的設計

千鋒武漢發表於2021-08-27

  如果要選擇一門程式設計師必備的技能,那答案無疑是資料庫,而MySQL是首選。很多企業在面試過程中會提問MySQL資料庫表設計要注意什麼,接下來小千就給大家講解一下。

img_279127_154355955725360

  MySQL相較於MSSQL SERVER和Oracle,是一款功能強大的小型資料庫,能很好的滿足千萬級資料量的專案需要。注意,MySQL本身是沒有視覺化介面的,在Windows系統中你可以透過dos命令進行簡單的連線和檢視,在Linux系統下可以透過MySQL的命令進行連線檢視。

  MySQL支援很多種不同的資料型別,並且選擇正確的資料型別對於獲得高效能至關重要。在設計MySQL表時,你需要注意五點:

  1、一定要設計主鍵

  主鍵,又叫主關鍵字,用來唯一地標識表中的某一條記錄。它能保證實體的完整性,加快資料庫的操作速度,這一點很重要。主鍵使用自增最佳,這樣每次插入新的記錄,記錄就會順序新增到當前索引節點的後續位置,當一頁寫滿,就會自動開闢一個新的頁。如果不是自增主鍵,那麼可能會在中間插入,就會引發頁的分裂,產生很多表碎片。

  2、欄位命名儘量避開保留字

  在給欄位命名的時候,要儘量避開關鍵字,以免出了問題而不好查詢。雖然在以關鍵字命名的欄位上加''可以不再報錯,但保險起見,就不要這麼設計。

  3、表名長度儘可能短

  表名稱不要太長,Oracle限制字元為30個,如果有轉資料庫的需要,表名太長無疑會增加轉換的工作量。

  4、儘可能不使用default null

  NULL值不能進行索引,影響索引的統計資訊,影響最佳化器的判斷。複合索引中只要有一列含有NULL值,那麼這一列對於此複合索引就是無效的。

  5、時間戳Timestamp

  每個表的最後都加一個create_time為時間戳型別timestamp的欄位,該方式對於除錯階段非常有幫助。

  6、不要直接儲存圖片、音訊、影片等大容量內容

  MySQL中有兩個欄位型別被用來設計存放大容量檔案:TEXT和BLOB型別。但MySQL記憶體臨時表並不支援這樣的大資料型別,如果查詢中包含這樣的資料,在排序等操作時,就不能使用記憶體臨時表,必須使用磁碟臨時表進行,導致查詢效率緩慢。同時因為資料內容比較大,就會造成binlog內容比較多,導致主從同步效率問題。

  瞭解更多資料庫最佳化知識,只要你的技術能夠滿足企業的需要,你就能拿到滿意的薪資。如果你真的想要學好程式設計開發,可以選擇專業的學習,讓自己更好的進入程式設計行業。

  本文來自千鋒教育,轉載請註明出處。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548651/viewspace-2789081/,如需轉載,請註明出處,否則將追究法律責任。

相關文章