溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MySQL數(shù)據(jù)庫設(shè)計(jì)時(shí)如何優(yōu)化

發(fā)布時(shí)間:2022-01-14 16:00:03 來源:億速云 閱讀:107 作者:小新 欄目:數(shù)據(jù)庫

小編給大家分享一下MySQL數(shù)據(jù)庫設(shè)計(jì)時(shí)如何優(yōu)化,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

  1、命名的技巧與規(guī)范

  無論什么設(shè)計(jì),命名都應(yīng)該作為非常重要的事情來看待,表、序列、字段、索引的命名技巧可以歸結(jié)如下:

  (1)序列名字跟表字段名字相同

  例如:insertintousers(us_id)value(us_id.nextval)

  SQLServer、DB2等數(shù)據(jù)庫中是沒有序列的含義的。

  (2)關(guān)聯(lián)表的名稱應(yīng)該是被關(guān)聯(lián)的表用“_”連接起來組成的

  例如:我們已經(jīng)設(shè)計(jì)關(guān)聯(lián)是多對(duì)多的表authors和表books了,那么我們的關(guān)聯(lián)表便可以命名為authors_books.

  (3)關(guān)聯(lián)字段名稱必須相同,名稱以基礎(chǔ)表的字段名稱為準(zhǔn)

  例如:authors表中有as_id、as_name字段。

  (4)字段定義的前兩位是表名的縮寫,第三位是下劃線

  例如:us_id、us_name、bk_name、bk_time.

  第一,保證規(guī)范,序列名稱必須是唯一的,而且,一般的序列就是這個(gè)表的id字段。如果不加前綴,那么字段都叫做id就會(huì)違背惟一性原則。

  第二,為了將來關(guān)聯(lián)查詢語句的書寫方便。

  (5)常用字段采用固定定義

  例如:序列:id是否刪除:delornot

  (6)索引的名字和表的名字相同

  為了提高大數(shù)據(jù)量的表格的查詢速度,可以采用建立適當(dāng)?shù)乃饕绞?。如果一個(gè)表只有一個(gè)索引,建議索引的名字跟表相同,如果有多個(gè)索引,則為表名稱加下劃線加索引列名稱。

  2、優(yōu)化設(shè)計(jì)的技巧

  (1)關(guān)聯(lián)字段類型盡可能定義為數(shù)字類型

  例如:us_id,bk_id等類型都應(yīng)該設(shè)計(jì)成數(shù)字類型。

  (2)表的序列字段必須是數(shù)字類型

  原因同上。

  (3)如果一個(gè)字段需要經(jīng)常更改,則采用以空間換時(shí)間的設(shè)計(jì)方法

  最常見的例子是用戶積分登錄次數(shù)的累加,按照范式設(shè)計(jì),在users表中建立一個(gè)字段us_scores,以后需要在用戶積分改變時(shí)采用update的語句進(jìn)行修改。但是知道update語句的執(zhí)行速度是很慢的,為了避免大量重復(fù)使用它,優(yōu)化的設(shè)計(jì)方案是建立us_scores表,存儲(chǔ)每次增加的積分,在查詢是采用SQL語句的sum方法來計(jì)算之。

  (4)若數(shù)據(jù)庫有移植的可能性,不使用存儲(chǔ)過程及觸發(fā)器

  (5)建立恰當(dāng)?shù)乃饕?/p>

  索引的建立是加快數(shù)據(jù)庫查詢的基本技巧之一,通常的建議是,只有百萬級(jí)的記錄的表格才應(yīng)該建立索引。

  3、如何保證數(shù)據(jù)的安全性

  最安全的設(shè)計(jì)方案是,Web數(shù)據(jù)庫和測試數(shù)據(jù)庫分離。Web數(shù)據(jù)庫權(quán)限只被管理員一個(gè)人掌握。

以上是“MySQL數(shù)據(jù)庫設(shè)計(jì)時(shí)如何優(yōu)化”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI