成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL表設計時踩過的坑!

數據庫 MySQL
有朋友在后臺留言。希望我能說說我在數據庫表設計時踩過的坑。那么,我們今天就來聊聊我在數據庫表設計時踩過的坑,以及現在對數據庫表設計的一點建議。希望能夠幫助到你。

MySQL表設計踩過的坑!

前言

有朋友在后臺留言。希望我能說說我在數據庫表設計時踩過的坑。那么,我們今天就來聊聊我在數據庫表設計時踩過的坑,以及現在對數據庫表設計的一點建議。希望能夠幫助到你。

utf8的鍋

場景 : 之前在給客戶做微商城時,需要保存微信的授權信息,此時就有一個nickname字段,在設計數據表時,潛意識的將表的存儲格式設置為utf8,生產上線一段時間后偶爾出現保存異常。經分析,出現異常的原因是:用戶nickname中有email表情符號。utf8格式的數據表存儲不下導致。

經驗提示: 在設計數據表時,一定要注意該字段存儲的內容,如果允許設置表情,則一定不能使用utf8,而是使用utf8mb4。

選擇合適的類型

在數據庫表設計時,字段的類型還真不好設計,這里簡單說說:

  1. 保存手機號的字段,用varchar(20)就已經足夠了,就不應該設計為varchar(100),設置為varchar(100)只會消耗更多的存儲以及內存開銷,得不償失啊!
  2. 保存Boolean類型,使用tinyint就夠了,而不需要設計為int,甚至bigint。

數據類型設計的過大,就會造成沒必要的浪費(磁盤,內存,CPU),最主要的是,這是一件費力不討好的事情。

主外鍵字段類型不一致

主外鍵類型不一致,說起來,你可能會不相信,但在數據庫表設計時,稍不留神,就不一致,埋下隱式類型轉換的坑。如下:

用戶表:

  1. create table t_base_user( 
  2. oid bigint(20) not null primary key auto_increment comment "主鍵", .... 

 

注意此時的主鍵oid為bigint(20)。

用戶地址表:

 

  1. create table t_base_user_address( 
  2.  
  3. oid bigint(20) not null primary key auto_increment comment "主鍵"
  4.  
  5. user_id varchar(30) null comment "用戶id" .... 
  6.  

你看,此時在t_base_user_address表中的user_id外鍵字段,設計時的卻是varchar(30)。你可能覺得你不可能發生這樣的錯誤,說出來也不怕你笑話,我就踩過好幾次這樣的坑,到***發現慢SQL了,才發現自己中了這樣的坑!!!

注釋

之前在數據庫表設計時,就沒有加注釋的習慣,造成的直接后果是:數據庫設計階段一過,后續數據表的使用中,字段名就全靠猜了。我們寫代碼是知道注釋是非常重要的,同樣在設計數據庫表時,注釋也非常重要!一定要記住加注釋,無論是表,還是字段,索引,都必須加上注釋。

如:

 

  1. create table t_base_user( 
  2.  
  3. oid bigint(20) not null primary key auto_increment comment "主鍵", .... 
  4.  

 

已有表加注釋

 

  1. alter table t_base_user modify oid bigint(20) not null primary key auto_increment comment "主鍵"; 

加注釋時,還要注意的是:在一些需要計算的字段上,需要加上計算規則文檔的鏈接。方便后續查找!

加索引

在之前的文章中也有說過,一個好的數據表設計,在一開始就應該考慮添加索引,這個階段添加索引成本不僅***。而且還不給后續留下慢查詢,甚至生產事故的隱患!索引怎么加,索引重不重要,可以查看《寫會MySQL索引》一文進行查看!唉,我就吃過不少沒加索引或忘記添加索引的虧,記憶猶新!!!

小結

以上是我數據庫設計表時躺過的坑,下面小結精簡版本一下:

  • 允許保存表情的表,存儲格式設計為utf8mb4,避免使用utf8。
  • 選擇合適的數據類型。
  • 主外鍵字段類型一定要一致,否則會造成隱式轉化,不走索引,造成生產事故!
  • 表以及字段上添加合理的注釋。
  • 數據庫表設計時,一定要在外鍵字段以及合適的字段上加索引。

 

上面是我數據庫表設計時,遇到踩過坑以后的經驗之談。有些坑當時還真花了不少時間來填補。記錄在這里,如果能幫助到你,那就太好了! 

責任編輯:龐桂玉 來源: 數據庫開發
相關推薦

2024-04-01 08:05:27

Go開發Java

2017-07-17 15:46:20

Oracle并行機制

2024-05-06 00:00:00

緩存高并發數據

2015-03-24 16:29:55

默認線程池java

2025-04-29 10:17:42

2023-03-13 13:36:00

Go擴容切片

2018-09-11 09:14:52

面試公司缺點

2018-01-10 06:17:24

2022-04-26 21:49:55

Spring事務數據庫

2019-10-30 14:44:41

Prometheus開源監控系統

2019-12-12 14:32:26

SQL語句數據庫

2019-02-19 09:46:58

美圖容器化Kubernetes

2024-11-26 08:20:53

程序數據歸檔庫

2024-10-08 08:14:08

用戶生命周期分析服務

2019-04-18 14:06:35

MySQL分庫分表數據庫

2018-08-01 14:45:16

PHP編程語言

2021-10-15 06:49:37

MySQL

2025-05-27 01:55:00

MySQL數據庫工具鏈

2025-04-14 09:31:03

2025-04-15 02:00:00

API版本項目
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 黄色骚片| 成人免费视频网站在线看 | 91精品久久久久久久久 | 国产精品一区网站 | 国产精品成人一区二区三区夜夜夜 | 国产精品视频在线免费观看 | 精品一二三 | 国内精品久久精品 | 久久com | 欧美黄视频 | 成人在线视频一区 | 日韩欧美国产成人一区二区 | 天堂一区二区三区四区 | 久久午夜精品 | 亚洲二区精品 | 国产精品国产精品国产专区不蜜 | 亚洲一区中文字幕 | 欧美一区二区三区在线 | 欧美黄色小视频 | 99国产欧美 | 国产色在线 | 国产精品久久久久久福利一牛影视 | 亚洲欧美日韩网站 | 欧美一级淫片007 | 天天av天天好逼 | 国产精品久久久久久吹潮 | 91xh98hx 在线 国产 | 亚州精品天堂中文字幕 | 天天干天天草 | 国产精品视频播放 | av黄色免费在线观看 | 亚洲综合久久久 | 91久久精品一区二区二区 | 久久中文字幕一区 | 国产欧美一区二区在线观看 | 日韩黄色av | 欧美三级在线 | 日本一区二区三区在线观看 | 成人免费视频网站在线看 | 午夜影院黄 | 亚洲精品久久久一区二区三区 |