首页
/
每日頭條
/
科技
/
mysql數據庫的建立和配置
mysql數據庫的建立和配置
更新时间:2026-01-17 07:34:27
數據庫設計規範

首先我們先看一下,标準規範的建表SQL語句的是什麼樣子的,如下:

mysql數據庫的建立和配置(MySQL數據庫創建庫表的基本規範)1

庫名規範

mysql數據庫的建立和配置(MySQL數據庫創建庫表的基本規範)2

  1. 庫命名應該在30個字符以内,存在關聯關系的表在命名時盡量體現關聯關系,如user表與user_registry表。
  2. 庫名稱格式應遵循“業務系統名稱_子系統名稱”,相同模塊的表名盡量使用統一前綴。
  3. 創建數據庫時應該顯式指定字符集,并且字符集隻能是 utf8或者 utf8mb4。

建表規範

mysql數據庫的建立和配置(MySQL數據庫創建庫表的基本規範)3

  1. 表命名和字段命名應該控制在30個字符以内,使用英文小寫單詞,表名應由字母、數字和下劃線組成,禁止使用中文命名,如果有多個單詞需使用下劃線隔開。
  2. 創建表時,表命名時應該用英文單詞的單數形式,如學生信息表命名,應該為student而不是students。
  3. 創建表時,對相關功能的表應當使用相同前綴,前綴通常為這個表的模塊或依賴主實體對象的名稱縮寫,如物資系統采用”wz_”作為前綴。
  4. 創建表時,表字段命名不建議使用數據庫關鍵字,如:name,time ,datetime
  5. 創建表時,應該顯式申明字符集為 utf8或 utf8mb4,如 DEFAULT CHARSET=utf8
  6. 創建表時,應該對字段和表添加COMMENT。
  7. 創建表時,應該創建主鍵,建議使用 auto_increment的 id作為主鍵(與業務無關,與業務相關字段應創建唯一索引),類型應為 intbigint。推薦使用bigint類型,因為無符号int存儲範圍為-2147483648~2147483647,溢出後會導緻報錯。
  8. 創建表時,應該有創建時間字段create_time和更新時間字段update_time。
  9. 創建表時,必填字段應該盡量設置NOT NULL屬性,同時根據實際業務需要定義DEFAULT值。盡量避免使用NULL,因為使用NULL需要占用額外的空間存儲、聚合函數計算結果偏差,同時含有NULL值的列,會對SQL優化産生影響,尤其是組合索引中。
  10. 創建表時,不推薦使用blob,text類型,比較浪費硬盤和内存空間,在加載表數據時,會讀取大字段到内存裡從而浪費内存空間,影響系統性能。建議對表中的blob、text等大字段,垂直拆分到其他表裡,僅在需要讀這些對象的時候才去查詢。
  11. 創建表時,對需要頻繁JOIN查詢的字段,建議在其他表裡冗餘存儲。如 username 字段在user_account,user_registry等表裡冗餘存儲username ,減少JOIN查詢。
  12. 創建表時,表與表之間的相關聯字段盡量使用統一名稱,如 user_account 表 裡面的 username 和 user_registry表裡面的 username 相對應。
  13. 創建表時,文本數據盡量用varchar存儲,時間類型盡量選取timestamp。
  14. 創建中間表時,表名稱建議以 tmp_開頭,時間結尾,需定期清理。
  15. 創建備份表時,表名稱建議以bak_開頭,時間結尾,需定期清理。
  16. 創建表時,應該顯式申明存儲引擎類型,表引擎取決于實際應用場景及當前數據庫中的已經存在的存儲引擎,我們通常使用InnoDB存儲引擎。Innodb存儲引擎支持事務、行級鎖、更好的恢複性、高并發下性能更好,對多核、大内存、SSD等硬件支持更好。

索引規範

mysql數據庫的建立和配置(MySQL數據庫創建庫表的基本規範)4

  1. 主鍵索引的名稱建議以"pk_"開頭,唯一索引以"uq_"開頭,非唯一索引以"idx_"開頭,以表名、字段的名稱或縮寫作為後綴,索引名稱必須使用小寫。
  2. 創建索引時,多考慮建立聯合索引,并把字段值去重之後的個數多的放在前面。
  3. 單索引中每個索引值的長度建議不超過64KB,不要索引blob、text等大字段,這樣作會讓索引占用太多的存儲空間.。
  4. 單個表上的索引個數建議不超過5個,唯一索引由3個以下字段組成,并且字段都是整形時,使用唯一鍵作為主鍵。
  5. 在多表 JOIN的SQL語句裡,保證被驅動表的連接列上有索引,這樣JOIN執行效率最高。
  6. 避免存在冗餘索引,合理創建聯合索引(避免冗餘),如果表裡已經存在key(a,b),則key(a)為冗餘索引,需要删除key(a)。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
word求平均值的公式
word求平均值的公式
演示機型:華為MateBookX系統版本:win10APP版本:word20161、點擊菜單欄中的“布局”菜單,點擊“公式”菜單。2、點擊函數下拉列表,選中“=AVERAGE()”。3、在括号中輸入“B2:D2”,表示計算第二行的第二個單元格到第四個單元格總和的平均分。4、點擊“确定&rdq
2026-01-17
閑魚如何永久注銷賬号
閑魚如何永久注銷賬号
1、打開閑魚,點擊下方菜單欄的我的”。2、擊此頁面右上角的設置。3、下滑列表到最下方,點擊退出登錄。4、進入支付寶,在上方的搜索欄輸入服務大廳并搜索進入。5、選擇永久注銷。6、仔細閱讀下方相關信息的提示,點擊下一步,根據系統提示一步步操作完成賬号的注銷,即是等于閑魚賬号的注銷。
2026-01-17
嬰幼兒發燒新手媽媽該如何處理
嬰幼兒發燒新手媽媽該如何處理
第一、發燒的定義美國兒科學會以及絕大多數專家一緻認為嬰幼兒正常體溫介于97--100.3華氏度,約為36.11--37.94攝氏度。嬰幼兒肛溫達到以及高于100.4華氏度38攝氏度時,則被認為發燒。第二、發燒的症狀體溫測定不是判斷嬰幼兒發燒嚴重性的的唯一标準。年齡、行為也是重要參考标準。同樣的發熱溫度,3月齡以下的寶寶比3月齡以上寶寶嚴重。寶寶發燒,但與平時無異,能吃能跑,則無需過于擔心。另外要注
2026-01-17
衆包騎手和專送騎手有什麼區别
衆包騎手和專送騎手有什麼區别
以華為P40、EMUI11、美團v7.29.3為例。主要區别在于:待遇不同、工作時間不同、系統派單方式不同、工資标準不同、工資結算方式不同。1、待遇不同:美團衆包是美團專門為兼職送外賣的人員開發的一款app,不屬于公司的内部員工,也不能享受公司的福利待遇;而美團騎手是屬于美團旗下的正式員工,每天需要定時打卡上下班,有考勤要求,必須遵守公司的管理制度,享受公司的福利待遇。2、工作時間不一樣。美團衆包
2026-01-17
汽車的主動安全系統有哪些
汽車的主動安全系統有哪些
1、第一,安全氣囊。這個相信大家是再熟悉不過了,通常不管再低配的車型,至少前排主副駕駛位的安全氣囊是不會少的,中高配車型,後排也會有頭部安全氣囊,或者安全側氣簾,豪華配置的車型,還會有膝部氣囊,甚至行人保護氣囊。安全氣囊就像韓信點兵,多多益善,如果是同樣價位的車型,肯定優選安全氣囊更多的。2、第二,防抱死制動系統,簡稱ABS。ABS的工作原理是一段冗長的物理術語解說,咱們還是直接說人話吧,直白點地
2026-01-17
Copyright 2023-2026 - www.tftnews.com All Rights Reserved