1. 程式人生 > >MySQL資料庫規範

MySQL資料庫規範

一丶資料庫規範
1.所有的資料庫表名必須以小寫字元標識
  並且不能與資料庫關鍵字重合
2.臨時必須以tmp為字首以日期為字尾
3.備份表必須以bak為字首以日期為字尾
4.相同列名的資料型別必須一致
5.所有的表和欄位要添加註釋
6.儘量控制單表資料量的大小,建議控制在500萬行以內(500萬不是mysql資料庫的限制)7
7.儘量避免使用mysql分割槽表,可以使用物理分割槽表的方式管理大資料
8.禁止在表中建立預留欄位 修改一個欄位遠遠大於增加一個欄位的消耗
9.禁止在資料庫中儲存圖片,檔案等二進位制資料
10.禁止在線上做資料庫壓力測試
11.禁止從開發環境,測試環境直接連線生產環境的資料庫
12.禁止查詢不需要的欄位
二丶索引的規範
1.限制每張表上的索引數量,建議單張表索引不超過5個
2.每個Innodb表必須有一個主鍵,不使用更新頻繁的列作為主鍵,不使用多列主鍵
3.常見需要建立索引的欄位:
  -在select update delete語句中where從句中出現的列。
  -包含在order by group by distinct中的欄位。
      (一般使用組合索引)
  -多表join的關聯列。
4.索引列的順序 
  -區分度最高的列放在聯合索引的最左側 1
  -儘量把欄位長度小的列放在聯合索引的最左側 2
  -使用最頻繁的列放在聯合索引的左側 3
5.避免建立冗餘索引和重複索引
  重複索引:example:primary key(id),index (id),unique index(id)
  冗餘索引:index(a,b,c),index(a,b),index(a)
6.對於頻繁的查詢優先考慮使用覆蓋索引(既包含所有的查詢欄位)
7.儘量避免使用Innodb的外來鍵約束 


三丶資料庫欄位設計規範
1.優先選擇符合儲存需要的最小資料型別
  -將字串轉化為數字型別儲存 
    如:inet_aton('255.255.255.255')=4294967295
       inet_ntoa(4294967295)='255.255.255.255'
  -對非負整數來說優先使用unsigned
  -varchar(N) n表示字元數,而不是位元組數,varchar(255)utf8儲存漢字佔用765個位元組
2.避免使用text,blob,enum資料型別
3.儘可能把所有列定義為not null
4.使用timestamp 4個位元組有範圍(儲存空間比datatime小)或datatime(8個位元組)型別儲存時間
5.同財務相關的金額類資料,必須使用decimal型別,float和double是非精準浮點數
四丶資料庫SQL開發規範
1.建議使用預編譯語句進行資料庫操作
2.避免資料型別的隱式轉換
3.充分利用表上已經存在的索引
  -避免使用雙%號的查詢條件,如a like '%123%'
  -一個sql只能利用複合索引的一列進行範圍查詢
  -使用left join或not exists來優化not in操作
4.程式連線不同的資料庫使用不同的賬號,禁止跨庫查詢
5.禁止使用select * 必須使用select<欄位列表>查詢
6.禁止使用不含欄位列表的insert語句
7.禁止使用子查詢,可以把子查詢優化為join操作
8.避免使用join關聯太多的表(建議不超過5個)
9.減少同資料庫的互動次數(資料庫更適合處理批量操作)
10.禁止使用order by rand()進行隨機排序,應該在程式中生成一個隨機值,然後根據隨機值取資料。
11.禁止在where從句中進行函式轉換和計算
   例如:where date(createtime)='20160901' 
   ->where createtime>='20160901' and createtime<'20160902'
12.在明顯不會用重複值是使用union all而不使用union
13.拆分複雜的大sql為多個小sql


五丶資料庫操作行為規範
1.超過100萬行的批量寫操作,要分批多次進行操作
2.禁止為程式使用的賬號賦予super許可權
3.對於程式連線資料庫賬號,遵循最小原則
  -程式使用的資料庫賬號只能在一個db下使用,不準跨庫使用
  -程式使用的賬號原則上不準有drop許可權

相關推薦

Mysql資料庫規範設計

先了解一下規範設計的規則吧 1、命名規範 最好不要用數字(雖然它允許) , 也不要使用駝峰命名,使用小寫字母 並且在不同的單詞之間使用下劃線    _   (包括有 資料庫,表,欄位) 2、索引和正規化 最好為每個表建立一個主鍵索引。 正規化瞭解一下 第一正規化:

MySQL 資料庫規範--調優篇(終結篇)

前言 這篇是MySQL 資料庫規範的最後一篇--調優篇,旨在提供我們發現系統性能變弱、MySQL系統引數調優,SQL指令碼出現問題的精準定位與調優方法。 目錄 1.MySQL 調優金字塔理論 2.MySQL 慢查詢分析--mysqldumpslow、pt_query_digest工具的使用(SQL

MySQL資料庫規範

一丶資料庫規範 1.所有的資料庫表名必須以小寫字元標識   並且不能與資料庫關鍵字重合 2.臨時必須以tmp為字首以日期為字尾 3.備份表必須以bak為字首以日期為字尾 4.相同列名的資料型別必須一致 5.所有的表和欄位要添加註釋 6.儘量控制單表資料量的大小,建議控制在500萬行以內(500萬不是mysql

MYSQL資料庫規範-欄位規範

(1)用好數值型別tinyint(1Byte)smallint(2Byte)mediumint(3Byte)int(4Byte)bigint(8Byte)【bad case】int(1)/int(11) (2)字元轉化為數字用int而不是char(15)儲存i

MYSQL資料庫規範-索引

(1)謹慎合理使用索引改善查詢、減慢更新索引一定不是越多越好(能不加就不加,要加的一定得加)覆蓋記錄條數過多不適合建索引,例如“性別” (2)字元欄位必須建字首索引 alter table test.test add key (city(7)); (3)不

收集整理mysql資料庫設計規範與原則

1、 資料庫命名規範  採用26個英文字母(區分大小寫)和0-9的自然數(經常不需要)加上下劃線'_'組成;命名簡潔明確(長度不能超過30個字元);例如:user, stat, log, 也可以wifi_user, wifi_stat, wifi_log給資料庫加個字首;除非是備份資料庫可以加0-9的自然數:

MySql資料庫細節使用規範詳細解讀勝過千行程式碼優化

版權宣告:本文為博主原創文章,未經博主允許不得轉載。    https://blog.csdn.net/kwame211/article/details/76169262 適用場景:併發量大、資料量大的網際網路業務 一、基礎規範 (1)必須使用InnoDB儲存引擎

MySQL資料庫開發規範50條

所有的資料庫物件名稱必須使用小寫字母並用下劃線分割(MySQL大小敏感,見名知意,最好不超過32字元) 所有的資料庫物件名稱禁止使用MySQL保留關鍵字(如 desc、range、match、delayed 等,請參考 MySQL 官方保留字http://dev.mysql.com/doc/refm

【乾貨】MySQL資料庫開發規範

所有的資料庫物件名稱必須使用小寫字母並用下劃線分割(MySQL大小寫敏感,名稱要見名知意,最好不超過32字元) 所有的資料庫物件名稱禁止使用MySQL保留關鍵字(如 desc、range、match、delayed 等,請參考 MySQL官方保留字 ) 臨時庫表必須以t

MySQL資料庫表設計規範

用盡量少的儲存空間來儲存一個欄位的資料;例如:能使用int就不要使用varchar、char,能用varchar(16)就不要使用varchar(255);預設情況下,InnoDB引擎單一欄位索引的長度最大為767位元組,當使用UTF-8字符集,每一個字元使用3位元組儲存,在text或者varchar型別的欄

MySQL 資料庫設計規範 詳解

1> 資料庫涉及字元規範採用 26 個英文字母(區分大小寫) 和 0-9 這十個自然數,加上下劃線'_'組成,共 63 個字元,不能出現其他字元(註釋除外)注 : 1> 以上命名都不得超過 30 個字元的系統限制,變數名的長度限制為 29(不包括標識字元@)   

阿里巴巴MYSQL資料庫設計,查詢規範

MySQL資料庫 (一)建表規約 1.【強制】表達是與否概念的欄位,必須使用is_xxx的方式命名,資料型別是unsignedtinyint(1表示是,0表示否) 。說明:任何欄位如果為非負數,必須是unsigned。正例:表達邏輯刪除的欄位名is_d

MYSQL資料庫設計規範與原則

MYSQL資料庫設計規範 1、資料庫命名規範 採用26個英文字母(區分大小寫)和0-9的自然數(經常不需要)加上下劃線'_'組成; 命名簡潔明確(長度不能超過30個字元); 例如:user, stat, log,

阿里java開發規範(6)---MySQL資料庫

五、 MySQL 資料庫(一)建表規約1. 【強制】表達是與否概念的欄位,必須使用 is_xxx 的方式命名,資料型別是 unsigned tinyint( 1 表示是, 0 表示否)。說明: 任何欄位如果為非負數,必須是 unsigned。注意: POJO 類中的任何布林型

MySQL資料庫優化——資料庫設計規範

資料庫命名規範   採用26個英文字母(區分大小寫)和0-9的自然數(經常不需要)加上下劃線'_'組成; 命名簡潔明確(長度不能超過30個字元); 例如:user, stat, log, 也可以wifi_user, wifi_stat, wifi_log給資料庫

MySQL資料庫設計規範

MySQL 資料庫設計規範 目錄 基礎規範 索引規範 SQL設計 1. 基礎規範 ^ 1.1. 使用Innodb儲存引擎 1.2. 表字符集統一使用UTF8 如果遇到 EMOJ 等表情符號的儲存需求,可使用 utf

Mysql 資料庫指令碼更改規範

1、SQL檔案每個月形成一個檔案,以日期開頭,便於發版執行(如果檔案不存在建立一個,檔名格式為:201805.sql)。 2、SQL檔案在做資料結構修改前,必須在開頭單獨起一行備註此次修改做的業務操作和日期。 例如: #=========2018/05/20  新增產品

MySQL資料庫命名及設計規範

標準化和規範化資料的標準化有助於消除資料庫中的資料冗餘。標準化有好幾種形式,但Third Normal Form(3NF)通常被認為在效能、擴充套件性和資料完整性方面達到了最好平衡。簡單來說,遵守3NF 標準的資料庫的表設計原則是:“One Fact in One Place”即某個表只包括其本身基本的屬性,

內部規範--Mysql資料庫欄位命名

方便自動程式碼生成器生成相應的功能 1、刪除標記 IS_DEL `IS_DEL` int(1) NOT NULL DEFAULT '0' COMMENT 'TITLE[刪除狀態] INTRO[刪除狀態,詳細資訊在B_RECORD_DELETE 表中記錄] INPUT[TY

mysql 資料庫建表語句的規範

-- 資料庫建表語句的規範小結 建表語句的規範: 1.欄位的設計     A. 資料型別儘量用數字型別,數字型別的比字元型別的要快很多。   B. 資料型別儘量小,這裡的儘量小是指在滿足可以預見的未來需求的前提下的,但是有不能太小,    上次監控系統裡面的表 mon_ta