唯一索引名為 uk_欄位名;普通索引名則為 idx_欄位名
單錶行數超過500萬或者單錶容量為2g的時候建議分庫分表(經驗值)、如果表資料量在3年內達不到500萬的時候不需要在建表的時候進行分庫分表。
業務上具有唯一屬性的字段或者組合欄位也需要建立唯一索引
3張表關聯的時候保證關聯欄位的資料型別一致並且關聯字段建立索引
isnull(null) 返回值1 、isnull(任何值) 返回值都是0
在進行匹配的時候建議優先選擇exist、如果一定要用in的話 建議使用in匹配的內容在1000以內 。備註資料量小的時候in與exists區別。大的話建議exists
建表時認識使用innodb這種儲存引擎
減少使用or語句,可將or語句優化為union。where a=1 or b=2 優化為 where a=1 union where b=2
對於一些狀態或者型別的字段 建議使用tinyint和smallint
問題考慮
普通索引與唯一索引的區別 ?
如果進行分庫分表、分庫分表的優缺點 ?
資料庫表的儲存引擎區別?
唯一索引名為 uk_欄位名;普通索引名則為 idx_欄位名
小數型別為 decimal,禁止使用 float 和 double
建表時必須有 comment 說明字段或者是表的業務
庫的名稱必須控制在32個字元以內,相關模組的表名與表名之間盡量提現join的關係,如user表和user_login表
建立表時必須顯式指定字符集為utf8或utf8mb4
建表時所有字段不能為null,要指定為 not null 最好給上預設值 default
欄位名一律小寫,多個詞之間用 _ (下劃線) 分隔
新增表必須包含一下字段
'''
`yn` int(1) not null default 1 comment '是否刪除 0無效 1有效',
`created_date` datetime not null default current_timestamp comment '建立時間',
`creator` varchar(32) not null default 'system' comment '建立者',
`modifier` varchar(32) not null default 'system' comment '修改者',
`modified_date` timestamp not null default current_timestamp on update current_timestamp comment '更新時間',
`version` int(10) not null default 0 comment '版本',
''''''
乙個較為規範的建表語句樣例create table user (
`id` bigint(11) not null auto_increment,
`user_id` bigint(11) not null default 0 comment 『使用者id』
`username` varchar(45) not null default '' comment '真實姓名',
`email` varchar(30) not null default '' comment 『使用者郵箱』,
`yn` int(1) not null default 1 comment '是否刪除 0無效 1有效',
`created_date` timestampnot null default current_timestamp comment '建立時間',
`creator` varchar(32) not null default 'system' comment '建立者',
`modifier` varchar(32) not null default 'system' comment '修改者',
`modified_date` timestamp not null default current_timestamp on update current_timestamp comment '更新時間',
`version` int(10) not null default 0 comment '版本',
primary key (`id`),
unique key uk_user_id (`user_id`),
key idx_username(`username`)
) engine=innodb default charset=utf8 collate=utf8_bin comment='使用者資訊';
'''
「 資料庫開發規範參考
一.命名規範1.使用 innodb 儲存引擎 2.使據庫和表的字符集統一使用 utf8 字符集 3.所有的表和字段都要新增注釋 4.盡量控制單錶資料量控制在 500 萬行以內 5.謹慎使用 mysql 分割槽表 6.做到冷熱資料分離,減少表的寬度 7.禁止在表中建立預留字段 8.禁止在資料庫中儲存,...
MYSQL資料庫開發規範
自己總結的mysql開發規範,夠用就行了。1 表 1.1 表必須要有主鍵,主鍵使用自動遞增,型別為int。1.2 表名使用有意義的英文單詞,可用下劃線分割。如需使用縮寫時,不可使用意義不明的縮寫。1.3 需要多表join的字段,資料型別保持絕對一致。1.4 字段命名時需要加上表名,確保所有表中的字段...
資料庫SQL開發規範
1 mysql中,varchar n 中的n代表的是字元數,而不是位元組數。例如varchar 255 表示可以儲存255的中文 2 過大的長度會消耗更多的記憶體。varchar n 儲存時是按照資料實際長度儲存的。當把資料讀入到記憶體時,為了提高效率,是按照n的長度分配記憶體的。3 盡可能將所有列...