电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

MySQL 使用規范總結

瀏覽:66日期:2023-10-10 18:07:48

1.必須使用InnoDB存儲引擎

有更好的CPU和IO性能,更好的備份和鎖表機制,提高統計和調試效率。

另外,作為一 個系統,InnoDB支持多種關鍵功能,其中最重要的是事務日志和行級鎖。事務日志記錄真正的數據庫事務,但更重要的是數據崩潰恢復和回滾。

基于 InooDB方式的IO,能給予更安全數據保護和更好性能表現。另外,在大多數的情況下,行級鎖可以提供更高的并發性能,因為用戶只鎖定他們正在寫的數據,而讀數據永遠不會被阻塞 。

2.數據表、數據字段必須加入中文注釋

方便日后新人小哥,更快理解熟悉;并且可讀性更好。同時在status這類字段上標注:0表示刪除,1表示正常 等枚舉值。

3.必須使用UTF8mb4字符集

utf8是通用的字符集,mb4 在utf8上進行了擴展,支持emoj等新的字符。

4.禁止使用存儲過程、視圖、觸發器、Event、join等

高并發大數據的互聯網業務,架構設計思路是“解放數據庫CPU,將計算轉移到服務層”,數據庫擅長存儲與索引,CPU計算在業務層更合理。

5.禁止存儲大文件或者大照片

當人員照片較多時,分頁查詢速度明顯變慢,之前1秒內響應,加了照片字段后,需要4~5秒左右才能響應。大文件和照片存儲在文件系統,數據庫里存URI更好

6.表必須有主鍵,例如自增主鍵

a)主鍵遞增,數據行寫入可以提高插入性能,可以避免Page分裂,減少表碎片提升空間和內存的使用。b)使用數字類型主鍵,較短的數據類型可以有效的減少索引的磁盤空間,提高索引的緩存效率。c)無主鍵的表刪除,在ROW模式的主從架構,會導致備庫夯住。d) 更多使用業務主鍵,在分庫分表會有更多便利性。

7.禁止使用外鍵,如果有外鍵完整性約束,需要應用程序控制

外鍵會導致表與表之間耦合,Update與Delete操作都會涉及相關聯的表,十分影響SQL的性能,甚至會造成死鎖。

8.必須把字段定義為NOT NULL并且提供默認值

a)null的列使索引/索引統計/值比較都更加復雜,對MySQL來說更難優化。b)null 這種類型MySQL內部需要進行特殊處理,增加數據庫處理記錄的復雜性;同等條件下,表中有較多空字段的時候,數據庫的處理性能會降低很多。c)null值需要更多的存儲空,無論是表還是索引中每行中的null的列都需要額外的空間來標識。d)對null 的處理時候,只能采用is null或is not null,而不能采用=、in、<、<>、!=、not in這些操作符號。

如:where name!=’nx’,如果存在name為null值的記錄,查詢結果就不會包含name為null值的記錄。

9.禁止使用TEXT、BLOB類型

會浪費更多的磁盤和內存空間,非必要的大量的大字段查詢會淘汰掉熱數據,導致內存命中率急劇降低,影響數據庫性能。

10.禁止使用小數存儲貨幣

使用整數吧,小數容易導致錢對不上。

11.必須使用varchar(20)存儲手機號

a)涉及到區號或者國家代號,可能出現+-()b)手機號會去做數學運算么?c)varchar可以支持模糊查詢,例如:like“138%”

12.禁止使用ENUM,可使用TINYINT代替

a)增加新的ENUM值要做DDL操作b)ENUM的內部實際存儲就是整數,你以為自己定義的是字符串?

13.關于索引設計

(1)單表索引建議控制在5個以內

索引并不是越多越好!索引可以提高效率同樣可以降低效率。

索引可以增加查詢效率,但同樣也會降低插入和更新的效率,甚至有些情況下會降低查詢效率。

因為MySQL優化器在選擇如何優化查詢時,會根據統一信息,對每一個可以用到的索引來進行評估,以生成出一個最好的執行計劃,如果同時有很多個索引都可以用于查詢,就會增加MySQL優化器生成執行計劃的時間,同樣會降低查詢性能。

(2)禁止在更新十分頻繁、區分度不高的屬性上建立索引

a)更新會變更B+樹,更新頻繁的字段建立索引會大大降低數據庫性能b)“性別”這種區分度不大的屬性,建立索引是沒有什么意義的,不能有效過濾數據,性能與全表掃描類似

(3)建立組合索引,必須把區分度高的字段放在前面

理由:能夠更加有效的過濾數據

14.關于SQL使用規范

(1)禁止使用INSERT INTO t_xxx VALUES(xxx),必須顯示指定插入的列屬性

理由:容易在增加或者刪除字段后出現程序BUG

(2)禁止在WHERE條件的屬性上使用函數或者表達式

理由:SELECT uid FROM t_user WHERE from_unixtime(day)>=’2019-10-09’ 會導致全表掃描正確的寫法是:SELECT uid FROM t_user WHERE day>= unix_timestamp(’2019-10-09 00:00:00’)

(3)禁止負向查詢,以及%開頭的模糊查詢

理由:a)負向查詢條件:NOT、!=、<>、!<、!>、NOT IN、NOT LIKE等,會導致全表掃描b)%開頭的模糊查詢,會導致全表掃描

(4)禁止大表使用JOIN查詢,禁止大表使用子查詢

理由:會產生臨時表,消耗較多內存與CPU,極大影響數據庫性能

(5)禁止使用OR條件,必須改為IN查詢

理由:舊版本Mysql的OR查詢是不能命中索引的,即使能命中索引,為何要讓數據庫耗費更多的CPU幫助實施查詢優化呢?

(6)應用程序必須捕獲SQL異常,并有相應處理

以上就是MySQL 使用規范總結的詳細內容,更多關于MySQL 使用規范的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 污水提升器,污水提升泵,污水提升装置-德国泽德(zehnder)水泵系统有限公司 | 搜木网 - 木业全产业链交易平台,免费搜货、低价买货! | 蓝鹏测控平台 - 智慧车间系统 - 车间生产数据采集与分析系统 | 14米地磅厂家价价格,150吨地磅厂家价格-百科 | 煤棒机_增碳剂颗粒机_活性炭颗粒机_木炭粉成型机-巩义市老城振华机械厂 | BESWICK球阀,BESWICK接头,BURKERT膜片阀,美国SEL继电器-东莞市广联自动化科技有限公司 | 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | 小程序开发公司_APP开发多少钱_软件开发定制_微信小程序制作_客户销售管理软件-济南小溪畅流网络科技有限公司 | 高中学习网-高考生信息学习必备平台 | 注塑模具_塑料模具_塑胶模具_范仕达【官网】_东莞模具设计与制造加工厂家 | 骁龙云呼电销防封号系统-axb电销平台-外呼稳定『免费试用』 | 卓能JOINTLEAN端子连接器厂家-专业提供PCB接线端子|轨道式端子|重载连接器|欧式连接器等电气连接产品和服务 | 电动垃圾车,垃圾清运车-江苏速利达机车有限公司 | 软文发布平台 - 云软媒网络软文直编发布营销推广平台 | 云南成人高考_云南成考网| 称重传感器,测力传感器,拉压力传感器,压力变送器,扭矩传感器,南京凯基特电气有限公司 | 济南侦探调查-济南调查取证-山东私家侦探-山东白豹调查咨询公司 密集架|电动密集架|移动密集架|黑龙江档案密集架-大量现货厂家销售 | 液氮罐_液氮容器_自增压液氮罐_杜瓦瓶_班德液氮罐厂家 | 四合院设计_四合院装修_四合院会所设计-四合院古建设计与建造中心1 | 北京普辉律师事务所官网_北京律师24小时免费咨询|法律咨询 | 超声波清洗机-超声波清洗设备定制生产厂家 - 深圳市冠博科技实业有限公司 | 包装机传感器-搅拌站传感器-山东称重传感器厂家-济南泰钦电气 | 直齿驱动-新型回转驱动和回转支承解决方案提供商-不二传动 | 臭氧老化试验箱,高低温试验箱,恒温恒湿试验箱,防水试验设备-苏州亚诺天下仪器有限公司 | 北京晚会活动策划|北京节目录制后期剪辑|北京演播厅出租租赁-北京龙视星光文化传媒有限公司 | 无线讲解器-导游讲解器-自助讲解器-分区讲解系统 品牌生产厂家[鹰米讲解-合肥市徽马信息科技有限公司] | 皮带式输送机械|链板式输送机|不锈钢输送机|网带输送机械设备——青岛鸿儒机械有限公司 | 一体式钢筋扫描仪-楼板测厚仪-裂缝检测仪-泰仕特(北京) | DWS物流设备_扫码称重量方一体机_快递包裹分拣机_广东高臻智能装备有限公司 | 气动机械手-搬运机械手-气动助力机械手-山东精瑞自动化设备有限公司 | 不锈钢钢格栅板_热浸锌钢格板_镀锌钢格栅板_钢格栅盖板-格美瑞 | 丝杆升降机-不锈钢丝杆升降机-非标定制丝杆升降机厂家-山东鑫光减速机有限公司 | 德州网站制作 - 网站建设设计 - seo排名优化 -「两山建站」 | 河北码上网络科技|邯郸小程序开发|邯郸微信开发|邯郸网站建设 | 通风气楼_通风天窗_屋顶风机-山东美创通风设备有限公司 | 【甲方装饰】合肥工装公司-合肥装修设计公司,专业从事安徽办公室、店面、售楼部、餐饮店、厂房装修设计服务 | 托盘租赁_塑料托盘租赁_托盘出租_栈板出租_青岛托盘租赁-优胜必达 | 东亚液氮罐-液氮生物容器-乐山市东亚机电工贸有限公司 | 耙式干燥机_真空耙式干燥机厂家-无锡鹏茂化工装备有限公司 | 网络推广公司_网络营销方案策划_企业网络推广外包平台-上海澜推网络 | 成都顶呱呱信息技术有限公司-贷款_个人贷款_银行贷款在线申请 - 成都贷款公司 |