您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關MySQL建表規范有哪些,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
必須:為強制要求,必須遵守,如有特殊需求需要評審
強烈建議:盡量遵守,如無法遵守請給出備注說明
建議:為最佳實踐,開發人員可以根據實際情況有所調整
表字符集選擇UTF8 【必須】
生產庫存儲引擎使用INNODB 【必須】
不在數據庫中存儲圖片、文件,不使用大文本類型【必須】
不使用外鍵,由程序保證數據一致性【必須】
禁止使用存儲過程、觸發器 【必須】
每張表數據量控制在2000W以下 ,如預計會超出,需提前做好拆分或者歸檔遷移計劃【強烈建議】
庫名、表名、字段名、索引名使用小寫字母,以下劃線_分割 【必須】
庫名、表名、字段名、索引名不使用保留字 (關鍵字)【必須】
庫名、表名、字段名不超過15個字符,需見名知意 【建議】
索引命名:【強烈建議】
唯一索引:“ux_表名_字段名前3字母[_字段名前3字母]”
非唯一索引:“ix_表名_字段名前3字母[_字段名前3字母]”
所有字段均定義為NOT NULL 【必須】
字符串統一單引號引用,而不是雙引號【必須】
使用UNSIGNED存儲非負整數 【必須】
使用DECIMAL存儲精確浮點數 【必須】
使用TINYINT來代替ENUM類型 【必須】
拆分TEXT、BLOB類型字段,或者獨立建表 【必須】
使用UNSIGNED INT存儲ipv4 地址,而不是CHAR(15) 【強烈建議】
非中文字段使用varchar存儲變長字符串 【強烈建議】
盡可能將字符轉化為數字 存儲【建議】
使用TIMESTAMP存儲操作時間 *【建議】
單張表索引數量不超過5,單個索引字段數不超過5 【強烈建議】
避免冗余索引 【強烈建議】
重要的SQL必須被索引 【強烈建議】
UPDATE、DELETE語句的WHERE條件列
ORDER BY、GROUP BY、DISTINCT的字段
多表JOIN的字段
主鍵的選擇要慎重 【強烈建議】
首選使用非空的唯一鍵, 其次選擇自增列或發號器
不使用更新頻繁的列,盡量不選擇字符串列,不使用UUID MD5 HASH、
能不建立索引盡量不用索引 【強烈建議】
不在null列上加索引
不在低基數列上建立索引,例如“性別”
此系統為了學習與減輕DBA的審核建表SQL的工作而做。達到自動審核基本規則問題
<1>優點:
<1>減少了DBA手動審核表的工作
<2>平臺化操作,方便
<3>通過python自動匹配與審核規范
<2>缺點:
<1>、只有建表SQL審核
<2>、比較簡單,后期可以使用inception,來審核建表SQL+上線SQL+備份等,請關注博客 http://blog.itpub.net/28823725/ 后期會調研與應用
<3>審核說明:
利用python程序來分析
分為:error,suggest錯誤類別
按字段錯誤進行展示
<4>其他說明:
<1>此系統寫于2015年6月初左右,為了學習inception 與python 為做,分享此文章只為了學習與交流
另Inception沒開源多久;對比inception的請輕噴哈~
<2>后期會出Inception的相關文章
<1>環境搭建
django環境搭建
忽略,可參考我博客的其他文章,里面有詳細的部署命令
python2.7環境搭建
忽略
平臺搭建
cd /chunlei/django
創建項目:
django-admin.py startproject createsql_check
會產生目錄createsql_check
cd /chunlei/django/createsql_check
ls
createsql_check
manage.py
<2>設置配置文件
cd /chunlei/django/createsql_check/createsql_check
vi settings.py
ALLOWED_HOSTS = ['可以訪問的IP地址,也可以寫*即不限制']
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'createsql_check',
]
EMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['/chunlei/chunlei/django/createsql_check/createsql_check/templates'],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
TIME_ZONE = 'Asia/Shanghai'
<3>、設置django的url文件
from django.conf.urls import include, url
from createsql_check.views import createcheck_create_table_check
from createsql_check.views import createcheck_create_sql
from createsql_check.views import createcheck_get_dba_error_suggest
from createsql_check.views import createcheck_to_mail
from createsql_check.views import to_input_confirm_info
from createsql_check.views import to_confirm
urlpatterns = [
url(r'^createcheck_create_table_check/$',createcheck_create_table_check),
url(r'^createcheck_create_sql/$',createcheck_create_sql),
url(r'^createcheck_get_dba_error_suggest/$',createcheck_get_dba_error_suggest),
url(r'^createcheck_to_mail/$',createcheck_to_mail),
url(r'^createcheck_to_input_confirm_info/$',to_input_confirm_info),
url(r'^createcheck_to_confirm/$',to_confirm),
]
<4>創建目錄
cd /chunlei/django/createsql_check
mkdir check_html
mkdir log
cd /chunlei/django/createsql_check/createsql_check
<5>配置163郵箱:
注:之前使用的是公司的郵件服務,此系統搭建與百度云,就配置163郵箱服務了
將授權碼配置到郵件服務即可
<6>開啟
cd /chunlei/django/createsql_check
python manage.py runserver IP:port
<1>RD審核建表SQL界面
測試建表SQL
create table table_test (id int,name1 varchar(50),primary key(id));
<2>自動分析問題
<3>填寫表相關信息
RD確認ok,填寫表相關信息,提交給DBA
<4>提交信息總覽
RD提交信息總覽,默認發送DBA,也可以填寫抄送郵件接收人
<5>發送給DBA
<6>DBA接收郵件
<7>DBA確認
點擊郵件的"DBA確認"
填寫庫表信息,說明等,點擊通過/拒絕
提交結果
以上就是MySQL建表規范有哪些,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。