MYSQL 數(shù)據(jù)庫(kù)命名與設(shè)計(jì)規(guī)范
更新時(shí)間:2008年12月24日 23:50:43 作者:
對(duì)于MYSQL 數(shù)據(jù)庫(kù)的命名與設(shè)計(jì),需要一定的規(guī)范,所以我們要了解和快速的掌握mysql有很多的幫助。
1.設(shè)計(jì)原則
1) 標(biāo)準(zhǔn)化和規(guī)范化
數(shù)據(jù)的標(biāo)準(zhǔn)化有助于消除數(shù)據(jù)庫(kù)中的數(shù)據(jù)冗余。標(biāo)準(zhǔn)化有好幾種形式,但Third Normal Form(3NF)通常被認(rèn)為在性能、擴(kuò)展性和數(shù)據(jù)完整性方面達(dá)到了最好平衡。簡(jiǎn)單來(lái)說(shuō),遵守3NF 標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)的表設(shè)計(jì)原則是:“One Fact in One Place”即某個(gè)表只包括其本身基本的屬性,當(dāng)不是它們本身所具有的屬性時(shí)需進(jìn)行分解。表之間的關(guān)系通過(guò)外鍵相連接。它具有以下特點(diǎn):有一組表專門存放通過(guò)鍵連接起來(lái)的關(guān)聯(lián)數(shù)據(jù)。
舉例:某個(gè)存放客戶及其有關(guān)定單的3NF 數(shù)據(jù)庫(kù)就可能有兩個(gè)表:Customer和Order。Order表不包含定單關(guān)聯(lián)客戶的任何信息,但表內(nèi)會(huì)存放一個(gè)鍵值,該鍵指向Customer表里包含該客戶信息的那一行。
事實(shí)上,為了效率的緣故,對(duì)表不進(jìn)行標(biāo)準(zhǔn)化有時(shí)也是必要的。
2) 數(shù)據(jù)驅(qū)動(dòng)
采用數(shù)據(jù)驅(qū)動(dòng)而非硬編碼的方式,許多策略變更和維護(hù)都會(huì)方便得多,大大增強(qiáng)系統(tǒng)的靈活性和擴(kuò)展性。
舉例,假如用戶界面要訪問(wèn)外部數(shù)據(jù)源(文件、XML 文檔、其他數(shù)據(jù)庫(kù)等),不妨把相應(yīng)的連接和路徑信息存儲(chǔ)在用戶界面支持表里。還有,如果用戶界面執(zhí)行工作流之類的任務(wù)(發(fā)送郵件、打印信箋、修改記錄狀態(tài)等),那么產(chǎn)生工作流的數(shù)據(jù)也可以存放在數(shù)據(jù)庫(kù)里。角色權(quán)限管理也可以通過(guò)數(shù)據(jù)驅(qū)動(dòng)來(lái)完成。事實(shí)上,如果過(guò)程是數(shù)據(jù)驅(qū)動(dòng)的,你就可以把相當(dāng)大的責(zé)任推給用戶,由用戶來(lái)維護(hù)自己的工作流過(guò)程。
3) 考慮各種變化
在設(shè)計(jì)數(shù)據(jù)庫(kù)的時(shí)候考慮到哪些數(shù)據(jù)字段將來(lái)可能會(huì)發(fā)生變更。
舉例,姓氏就是如此(注意是西方人的姓氏,比如女性結(jié)婚后從夫姓等)。所以,在建立系統(tǒng)存儲(chǔ)客戶信息時(shí),在單獨(dú)的一個(gè)數(shù)據(jù)表里存儲(chǔ)姓氏字段,而且還附加起始日和終止日等字段,這樣就可以跟蹤這一數(shù)據(jù)條目的變化。
2.數(shù)據(jù)庫(kù)涉及字符規(guī)范
采用26個(gè)英文字母(區(qū)分大小寫)和0-9這十個(gè)自然數(shù),加上下劃線'_'組成,共63個(gè)字符.不能出現(xiàn)其他字符(注釋除外).
注意事項(xiàng):
1) 以上命名都不得超過(guò)30個(gè)字符的系統(tǒng)限制.變量名的長(zhǎng)度限制為29(不包括標(biāo)識(shí)字符@).
2) 數(shù)據(jù)對(duì)象、變量的命名都采用英文字符,禁止使用中文命名.絕對(duì)不要在對(duì)象名的字符之間留空格.
3) 小心保留詞,要保證你的字段名沒(méi)有和保留詞、數(shù)據(jù)庫(kù)系統(tǒng)或者常用訪問(wèn)方法沖突
5) 保持字段名和類型的一致性,在命名字段并為其指定數(shù)據(jù)類型的時(shí)候一定要保證一致性.假如數(shù)據(jù)類型在一個(gè)表里是整數(shù),那在另一個(gè)表里可就別變成字符型了.
3.數(shù)據(jù)庫(kù)命名規(guī)范
數(shù)據(jù)庫(kù),數(shù)據(jù)表一律使用前綴
正式數(shù)據(jù)庫(kù)名使用小寫英文以及下劃線組成,盡量說(shuō)明是那個(gè)應(yīng)用或者系統(tǒng)在使用的.比如:
web_19floor_net
web_car
備份數(shù)據(jù)庫(kù)名使用正式庫(kù)名加上備份時(shí)間組成,如:
web_19floor_net_20070403
web_car_20070403
4.數(shù)據(jù)庫(kù)表命名規(guī)范
數(shù)據(jù)表名使用小寫英文以及下劃線組成,盡量說(shuō)明是那個(gè)應(yīng)用或者系統(tǒng)在使用的.
相關(guān)應(yīng)用的數(shù)據(jù)表使用同一前綴,如論壇的表使用cdb_前綴,博客的數(shù)據(jù)表使用supe_前綴,前綴名稱一般不超過(guò)5字
比如:
web_user
web_group
supe_userspace
備份數(shù)據(jù)表名使用正式表名加上備份時(shí)間組成,如:
web_user_20070403
web_group_20070403
supe_userspace_20070403
5.字段命名規(guī)范
字段名稱使用單詞組合完成,首字母小寫,后面單詞的首字母大寫,最好是帶表名前綴.
如 web_user 表的字段:
userId
userName
userPassword
表與表之間的相關(guān)聯(lián)字段要用統(tǒng)一名稱,
如 web_user 表里面的 userId 和 web_group 表里面的 userId 相對(duì)應(yīng)
6.字段類型規(guī)范
規(guī)則:用盡量少的存儲(chǔ)空間來(lái)存數(shù)一個(gè)字段的數(shù)據(jù).
比如能用int的就不用char或者varchar
能用tinyint的就不用int
能用varchar(20)的就不用varchar(255)
時(shí)間戳字段盡量用int型,如created:表示從'1970-01-01 08:00:00′開始的int秒數(shù),采用英文單詞的過(guò)去式;gmtCreated:表示datetime類型的時(shí)間,即形如'1980-01-01 00:00:00′的時(shí)間串,Java中對(duì)應(yīng)的類型為Timestamp
7.數(shù)據(jù)庫(kù)設(shè)計(jì)文檔規(guī)范
所有數(shù)據(jù)庫(kù)設(shè)計(jì)要寫成文檔,文檔以模塊化形式表達(dá).大致格式如下:
‘——————————————-
‘ 表名: web_user
‘ 作者: Aeolus(傻魚)
‘ 日期: 2007-04-11
‘ 版本: 1.0
‘ 描述: 保存用戶資料
‘ 具體內(nèi)容:
‘ UserID int,自動(dòng)增量 用戶代碼
‘ UserName char(12) 用戶名字
‘ ……
‘——————————————–
8.索引使用原則:
1) 邏輯主鍵使用唯一的成組索引,對(duì)系統(tǒng)鍵(作為存儲(chǔ)過(guò)程)采用唯一的非成組索引,對(duì)任何外鍵列采用非成組索引.考慮數(shù)據(jù)庫(kù)的空間有多大,表如何進(jìn)行訪問(wèn),還有這些訪問(wèn)是否主要用作讀寫.
2) 大多數(shù)數(shù)據(jù)庫(kù)都索引自動(dòng)創(chuàng)建的主鍵字段,但是可別忘了索引外鍵,它們也是經(jīng)常使用的鍵,比如運(yùn)行查詢顯示主表和所有關(guān)聯(lián)表的某條記錄就用得上.
3) 不要索引blob/text等字段,不要索引大型字段(有很多字符),這樣作會(huì)讓索引占用太多的存儲(chǔ)空間.
4) 不要索引常用的小型表
不要為小型數(shù)據(jù)表設(shè)置任何鍵,假如它們經(jīng)常有插入和刪除操作就更別這樣作了.對(duì)這些插入和刪除操作的索引維護(hù)可能比掃描表空間消耗更多的時(shí)間.
9.sql語(yǔ)句規(guī)范
所有sql關(guān)鍵詞全部大寫,比如SELECT,UPDATE,FROM,ORDER,BY等,所有的表名和庫(kù)名都要用“包含
如:
SELECT COUNT(*) FROM `cdb_members` WHERE `userName` = ‘a(chǎn)eolus';
10.其他設(shè)計(jì)技巧
1) 避免使用觸發(fā)器
觸發(fā)器的功能通??梢杂闷渌绞綄?shí)現(xiàn).在調(diào)試程序時(shí)觸發(fā)器可能成為干擾.假如你確實(shí)需要采用觸發(fā)器,你最好集中對(duì)它文檔化.
2) 使用常用英語(yǔ)(或者其他任何語(yǔ)言)而不要使用編碼或者拼音首字母縮寫
在創(chuàng)建下拉菜單、列表、報(bào)表時(shí)最好按照英語(yǔ)名排序.假如需要編碼或者拼音首字母縮寫,可以在旁邊附上用戶知道的英語(yǔ).
3) 保存常用信息
讓一個(gè)表專門存放一般數(shù)據(jù)庫(kù)信息非常有用.在這個(gè)表里存放數(shù)據(jù)庫(kù)當(dāng)前版本、最近檢查/修復(fù)(對(duì)Access)、關(guān)聯(lián)設(shè)計(jì)文檔的名稱、客戶等信息.這樣可以實(shí)現(xiàn)一種簡(jiǎn)單機(jī)制跟蹤數(shù)據(jù)庫(kù),當(dāng)客戶抱怨他們的數(shù)據(jù)庫(kù)沒(méi)有達(dá)到希望的要求而與你聯(lián)系時(shí),這樣做對(duì)非客戶機(jī)/服務(wù)器環(huán)境特別有用.
4) 包含版本機(jī)制
在數(shù)據(jù)庫(kù)中引入版本控制機(jī)制來(lái)確定使用中的數(shù)據(jù)庫(kù)的版本.時(shí)間一長(zhǎng),用戶的需求總是會(huì)改變的.最終可能會(huì)要求修改數(shù)據(jù)庫(kù)結(jié)構(gòu).把版本信息直接存放到數(shù)據(jù)庫(kù)中更為方便.
5) 編制文檔
對(duì)所有的快捷方式、命名規(guī)范、限制和函數(shù)都要編制文檔.
采用給表、列、觸發(fā)器等加注釋的數(shù)據(jù)庫(kù)工具.對(duì)開發(fā)、支持和跟蹤修改非常有用.
對(duì)數(shù)據(jù)庫(kù)文檔化,或者在數(shù)據(jù)庫(kù)自身的內(nèi)部或者單獨(dú)建立文檔.這樣,當(dāng)過(guò)了一年多時(shí)間后再回過(guò)頭來(lái)做第2 個(gè)版本,犯錯(cuò)的機(jī)會(huì)將大大減少。
6) 測(cè)試、測(cè)試、反復(fù)測(cè)試
建立或者修訂數(shù)據(jù)庫(kù)之后,必須用用戶新輸入的數(shù)據(jù)測(cè)試數(shù)據(jù)字段.最重要的是,讓用戶進(jìn)行測(cè)試并且同用戶一道保證選擇的數(shù)據(jù)類型滿足商業(yè)要求.測(cè)試需要在把新數(shù)據(jù)庫(kù)投入實(shí)際服務(wù)之前完成。
7) 檢查設(shè)計(jì)
在開發(fā)期間檢查數(shù)據(jù)庫(kù)設(shè)計(jì)的常用技術(shù)是通過(guò)其所支持的應(yīng)用程序原型檢查數(shù)據(jù)庫(kù).換句話說(shuō),針對(duì)每一種最終表達(dá)數(shù)據(jù)的原型應(yīng)用,保證你檢查了數(shù)據(jù)模型并且查看如何取出數(shù)據(jù)。
1) 標(biāo)準(zhǔn)化和規(guī)范化
數(shù)據(jù)的標(biāo)準(zhǔn)化有助于消除數(shù)據(jù)庫(kù)中的數(shù)據(jù)冗余。標(biāo)準(zhǔn)化有好幾種形式,但Third Normal Form(3NF)通常被認(rèn)為在性能、擴(kuò)展性和數(shù)據(jù)完整性方面達(dá)到了最好平衡。簡(jiǎn)單來(lái)說(shuō),遵守3NF 標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)的表設(shè)計(jì)原則是:“One Fact in One Place”即某個(gè)表只包括其本身基本的屬性,當(dāng)不是它們本身所具有的屬性時(shí)需進(jìn)行分解。表之間的關(guān)系通過(guò)外鍵相連接。它具有以下特點(diǎn):有一組表專門存放通過(guò)鍵連接起來(lái)的關(guān)聯(lián)數(shù)據(jù)。
舉例:某個(gè)存放客戶及其有關(guān)定單的3NF 數(shù)據(jù)庫(kù)就可能有兩個(gè)表:Customer和Order。Order表不包含定單關(guān)聯(lián)客戶的任何信息,但表內(nèi)會(huì)存放一個(gè)鍵值,該鍵指向Customer表里包含該客戶信息的那一行。
事實(shí)上,為了效率的緣故,對(duì)表不進(jìn)行標(biāo)準(zhǔn)化有時(shí)也是必要的。
2) 數(shù)據(jù)驅(qū)動(dòng)
采用數(shù)據(jù)驅(qū)動(dòng)而非硬編碼的方式,許多策略變更和維護(hù)都會(huì)方便得多,大大增強(qiáng)系統(tǒng)的靈活性和擴(kuò)展性。
舉例,假如用戶界面要訪問(wèn)外部數(shù)據(jù)源(文件、XML 文檔、其他數(shù)據(jù)庫(kù)等),不妨把相應(yīng)的連接和路徑信息存儲(chǔ)在用戶界面支持表里。還有,如果用戶界面執(zhí)行工作流之類的任務(wù)(發(fā)送郵件、打印信箋、修改記錄狀態(tài)等),那么產(chǎn)生工作流的數(shù)據(jù)也可以存放在數(shù)據(jù)庫(kù)里。角色權(quán)限管理也可以通過(guò)數(shù)據(jù)驅(qū)動(dòng)來(lái)完成。事實(shí)上,如果過(guò)程是數(shù)據(jù)驅(qū)動(dòng)的,你就可以把相當(dāng)大的責(zé)任推給用戶,由用戶來(lái)維護(hù)自己的工作流過(guò)程。
3) 考慮各種變化
在設(shè)計(jì)數(shù)據(jù)庫(kù)的時(shí)候考慮到哪些數(shù)據(jù)字段將來(lái)可能會(huì)發(fā)生變更。
舉例,姓氏就是如此(注意是西方人的姓氏,比如女性結(jié)婚后從夫姓等)。所以,在建立系統(tǒng)存儲(chǔ)客戶信息時(shí),在單獨(dú)的一個(gè)數(shù)據(jù)表里存儲(chǔ)姓氏字段,而且還附加起始日和終止日等字段,這樣就可以跟蹤這一數(shù)據(jù)條目的變化。
2.數(shù)據(jù)庫(kù)涉及字符規(guī)范
采用26個(gè)英文字母(區(qū)分大小寫)和0-9這十個(gè)自然數(shù),加上下劃線'_'組成,共63個(gè)字符.不能出現(xiàn)其他字符(注釋除外).
注意事項(xiàng):
1) 以上命名都不得超過(guò)30個(gè)字符的系統(tǒng)限制.變量名的長(zhǎng)度限制為29(不包括標(biāo)識(shí)字符@).
2) 數(shù)據(jù)對(duì)象、變量的命名都采用英文字符,禁止使用中文命名.絕對(duì)不要在對(duì)象名的字符之間留空格.
3) 小心保留詞,要保證你的字段名沒(méi)有和保留詞、數(shù)據(jù)庫(kù)系統(tǒng)或者常用訪問(wèn)方法沖突
5) 保持字段名和類型的一致性,在命名字段并為其指定數(shù)據(jù)類型的時(shí)候一定要保證一致性.假如數(shù)據(jù)類型在一個(gè)表里是整數(shù),那在另一個(gè)表里可就別變成字符型了.
3.數(shù)據(jù)庫(kù)命名規(guī)范
數(shù)據(jù)庫(kù),數(shù)據(jù)表一律使用前綴
正式數(shù)據(jù)庫(kù)名使用小寫英文以及下劃線組成,盡量說(shuō)明是那個(gè)應(yīng)用或者系統(tǒng)在使用的.比如:
web_19floor_net
web_car
備份數(shù)據(jù)庫(kù)名使用正式庫(kù)名加上備份時(shí)間組成,如:
web_19floor_net_20070403
web_car_20070403
4.數(shù)據(jù)庫(kù)表命名規(guī)范
數(shù)據(jù)表名使用小寫英文以及下劃線組成,盡量說(shuō)明是那個(gè)應(yīng)用或者系統(tǒng)在使用的.
相關(guān)應(yīng)用的數(shù)據(jù)表使用同一前綴,如論壇的表使用cdb_前綴,博客的數(shù)據(jù)表使用supe_前綴,前綴名稱一般不超過(guò)5字
比如:
web_user
web_group
supe_userspace
備份數(shù)據(jù)表名使用正式表名加上備份時(shí)間組成,如:
web_user_20070403
web_group_20070403
supe_userspace_20070403
5.字段命名規(guī)范
字段名稱使用單詞組合完成,首字母小寫,后面單詞的首字母大寫,最好是帶表名前綴.
如 web_user 表的字段:
userId
userName
userPassword
表與表之間的相關(guān)聯(lián)字段要用統(tǒng)一名稱,
如 web_user 表里面的 userId 和 web_group 表里面的 userId 相對(duì)應(yīng)
6.字段類型規(guī)范
規(guī)則:用盡量少的存儲(chǔ)空間來(lái)存數(shù)一個(gè)字段的數(shù)據(jù).
比如能用int的就不用char或者varchar
能用tinyint的就不用int
能用varchar(20)的就不用varchar(255)
時(shí)間戳字段盡量用int型,如created:表示從'1970-01-01 08:00:00′開始的int秒數(shù),采用英文單詞的過(guò)去式;gmtCreated:表示datetime類型的時(shí)間,即形如'1980-01-01 00:00:00′的時(shí)間串,Java中對(duì)應(yīng)的類型為Timestamp
7.數(shù)據(jù)庫(kù)設(shè)計(jì)文檔規(guī)范
所有數(shù)據(jù)庫(kù)設(shè)計(jì)要寫成文檔,文檔以模塊化形式表達(dá).大致格式如下:
‘——————————————-
‘ 表名: web_user
‘ 作者: Aeolus(傻魚)
‘ 日期: 2007-04-11
‘ 版本: 1.0
‘ 描述: 保存用戶資料
‘ 具體內(nèi)容:
‘ UserID int,自動(dòng)增量 用戶代碼
‘ UserName char(12) 用戶名字
‘ ……
‘——————————————–
8.索引使用原則:
1) 邏輯主鍵使用唯一的成組索引,對(duì)系統(tǒng)鍵(作為存儲(chǔ)過(guò)程)采用唯一的非成組索引,對(duì)任何外鍵列采用非成組索引.考慮數(shù)據(jù)庫(kù)的空間有多大,表如何進(jìn)行訪問(wèn),還有這些訪問(wèn)是否主要用作讀寫.
2) 大多數(shù)數(shù)據(jù)庫(kù)都索引自動(dòng)創(chuàng)建的主鍵字段,但是可別忘了索引外鍵,它們也是經(jīng)常使用的鍵,比如運(yùn)行查詢顯示主表和所有關(guān)聯(lián)表的某條記錄就用得上.
3) 不要索引blob/text等字段,不要索引大型字段(有很多字符),這樣作會(huì)讓索引占用太多的存儲(chǔ)空間.
4) 不要索引常用的小型表
不要為小型數(shù)據(jù)表設(shè)置任何鍵,假如它們經(jīng)常有插入和刪除操作就更別這樣作了.對(duì)這些插入和刪除操作的索引維護(hù)可能比掃描表空間消耗更多的時(shí)間.
9.sql語(yǔ)句規(guī)范
所有sql關(guān)鍵詞全部大寫,比如SELECT,UPDATE,FROM,ORDER,BY等,所有的表名和庫(kù)名都要用“包含
如:
SELECT COUNT(*) FROM `cdb_members` WHERE `userName` = ‘a(chǎn)eolus';
10.其他設(shè)計(jì)技巧
1) 避免使用觸發(fā)器
觸發(fā)器的功能通??梢杂闷渌绞綄?shí)現(xiàn).在調(diào)試程序時(shí)觸發(fā)器可能成為干擾.假如你確實(shí)需要采用觸發(fā)器,你最好集中對(duì)它文檔化.
2) 使用常用英語(yǔ)(或者其他任何語(yǔ)言)而不要使用編碼或者拼音首字母縮寫
在創(chuàng)建下拉菜單、列表、報(bào)表時(shí)最好按照英語(yǔ)名排序.假如需要編碼或者拼音首字母縮寫,可以在旁邊附上用戶知道的英語(yǔ).
3) 保存常用信息
讓一個(gè)表專門存放一般數(shù)據(jù)庫(kù)信息非常有用.在這個(gè)表里存放數(shù)據(jù)庫(kù)當(dāng)前版本、最近檢查/修復(fù)(對(duì)Access)、關(guān)聯(lián)設(shè)計(jì)文檔的名稱、客戶等信息.這樣可以實(shí)現(xiàn)一種簡(jiǎn)單機(jī)制跟蹤數(shù)據(jù)庫(kù),當(dāng)客戶抱怨他們的數(shù)據(jù)庫(kù)沒(méi)有達(dá)到希望的要求而與你聯(lián)系時(shí),這樣做對(duì)非客戶機(jī)/服務(wù)器環(huán)境特別有用.
4) 包含版本機(jī)制
在數(shù)據(jù)庫(kù)中引入版本控制機(jī)制來(lái)確定使用中的數(shù)據(jù)庫(kù)的版本.時(shí)間一長(zhǎng),用戶的需求總是會(huì)改變的.最終可能會(huì)要求修改數(shù)據(jù)庫(kù)結(jié)構(gòu).把版本信息直接存放到數(shù)據(jù)庫(kù)中更為方便.
5) 編制文檔
對(duì)所有的快捷方式、命名規(guī)范、限制和函數(shù)都要編制文檔.
采用給表、列、觸發(fā)器等加注釋的數(shù)據(jù)庫(kù)工具.對(duì)開發(fā)、支持和跟蹤修改非常有用.
對(duì)數(shù)據(jù)庫(kù)文檔化,或者在數(shù)據(jù)庫(kù)自身的內(nèi)部或者單獨(dú)建立文檔.這樣,當(dāng)過(guò)了一年多時(shí)間后再回過(guò)頭來(lái)做第2 個(gè)版本,犯錯(cuò)的機(jī)會(huì)將大大減少。
6) 測(cè)試、測(cè)試、反復(fù)測(cè)試
建立或者修訂數(shù)據(jù)庫(kù)之后,必須用用戶新輸入的數(shù)據(jù)測(cè)試數(shù)據(jù)字段.最重要的是,讓用戶進(jìn)行測(cè)試并且同用戶一道保證選擇的數(shù)據(jù)類型滿足商業(yè)要求.測(cè)試需要在把新數(shù)據(jù)庫(kù)投入實(shí)際服務(wù)之前完成。
7) 檢查設(shè)計(jì)
在開發(fā)期間檢查數(shù)據(jù)庫(kù)設(shè)計(jì)的常用技術(shù)是通過(guò)其所支持的應(yīng)用程序原型檢查數(shù)據(jù)庫(kù).換句話說(shuō),針對(duì)每一種最終表達(dá)數(shù)據(jù)的原型應(yīng)用,保證你檢查了數(shù)據(jù)模型并且查看如何取出數(shù)據(jù)。
相關(guān)文章
MySQL兩個(gè)查詢?nèi)绾魏喜⒊梢粋€(gè)結(jié)果詳解
利用union關(guān)鍵字,可以給出多條select語(yǔ)句,并將它們的結(jié)果組合成單個(gè)結(jié)果集,下面這篇文章主要給大家介紹了關(guān)于MySQL兩個(gè)查詢?nèi)绾魏喜⒊梢粋€(gè)結(jié)果的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08詳解MySQL多版本并發(fā)控制機(jī)制(MVCC)源碼
MVCC,即多版本并發(fā)控制(Multi-Version Concurrency Control)指的是,通過(guò)版本鏈維護(hù)一個(gè)數(shù)據(jù)的多個(gè)版本,使得讀寫操作沒(méi)有沖突,可保證不同事務(wù)讀寫、寫讀操作并發(fā)執(zhí)行,提高系統(tǒng)性能2021-06-06Mysql一些復(fù)雜的sql語(yǔ)句(查詢與刪除重復(fù)的行)
這篇文章主要介紹了Mysql一些復(fù)雜的sql語(yǔ)句(查詢與刪除重復(fù)的行),需要的朋友可以參考下2017-05-05重置MySQL中表中自增列的初始值的實(shí)現(xiàn)方法
這篇文章主要介紹了重置MySQL中表中自增列的初始值的實(shí)現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下2017-03-03安裝rpm包時(shí)提示錯(cuò)誤:依賴檢測(cè)失敗的解決方法
今天在虛擬機(jī)中裝MySQL的時(shí)候,突然出現(xiàn)了這個(gè)依賴檢測(cè)錯(cuò)誤,下面這篇文章主要給大家介紹了關(guān)于安裝rpm包時(shí)提示錯(cuò)誤:依賴檢測(cè)失敗的解決方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09MYSQL?Binlog恢復(fù)誤刪數(shù)據(jù)庫(kù)詳解
MySQL一旦誤刪數(shù)據(jù)庫(kù)之后恢復(fù)數(shù)據(jù)很麻煩,這里記錄一下艱辛的恢復(fù)過(guò)程,這篇文章主要給大家介紹了關(guān)于如何利用MySQL的binlog恢復(fù)誤刪數(shù)據(jù)庫(kù)的相關(guān)資料,需要的朋友可以參考下2022-11-11教您修復(fù)mysql數(shù)據(jù)庫(kù)的方法
你可能在使用MySQL過(guò)程中,各種意外導(dǎo)致數(shù)據(jù)庫(kù)表的損壞,而且這些數(shù)據(jù)往往是最新的數(shù)據(jù),通常不可能在備份數(shù)據(jù)中找到。本章將繼上篇文章中檢查出表的問(wèn)題后,告訴你如何修復(fù)表2014-05-05MySql報(bào)錯(cuò):Duplicate entry ‘10‘ for key&nbs
經(jīng)常遇到這個(gè)問(wèn)題,今天我把這個(gè)問(wèn)題記錄下來(lái),以后如果有其他人遇到相同的問(wèn)題,不至于困惑,在操作數(shù)據(jù)庫(kù)的時(shí)候,經(jīng)常會(huì)出現(xiàn)Duplicate entry ‘10’ for key 'PRIMARY’這樣的報(bào)錯(cuò),本文將給大家講講如何解決這個(gè)問(wèn)題,需要的朋友可以參考下2023-10-10