您好,登錄后才能下訂單哦!
小編給大家分享一下MySQL數據庫設計時如何優化,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
1、命名的技巧與規范
無論什么設計,命名都應該作為非常重要的事情來看待,表、序列、字段、索引的命名技巧可以歸結如下:
(1)序列名字跟表字段名字相同
例如:insertintousers(us_id)value(us_id.nextval)
SQLServer、DB2等數據庫中是沒有序列的含義的。
(2)關聯表的名稱應該是被關聯的表用“_”連接起來組成的
例如:我們已經設計關聯是多對多的表authors和表books了,那么我們的關聯表便可以命名為authors_books.
(3)關聯字段名稱必須相同,名稱以基礎表的字段名稱為準
例如:authors表中有as_id、as_name字段。
(4)字段定義的前兩位是表名的縮寫,第三位是下劃線
例如:us_id、us_name、bk_name、bk_time.
第一,保證規范,序列名稱必須是唯一的,而且,一般的序列就是這個表的id字段。如果不加前綴,那么字段都叫做id就會違背惟一性原則。
第二,為了將來關聯查詢語句的書寫方便。
(5)常用字段采用固定定義
例如:序列:id是否刪除:delornot
(6)索引的名字和表的名字相同
為了提高大數據量的表格的查詢速度,可以采用建立適當的索引方式。如果一個表只有一個索引,建議索引的名字跟表相同,如果有多個索引,則為表名稱加下劃線加索引列名稱。
2、優化設計的技巧
(1)關聯字段類型盡可能定義為數字類型
例如:us_id,bk_id等類型都應該設計成數字類型。
(2)表的序列字段必須是數字類型
原因同上。
(3)如果一個字段需要經常更改,則采用以空間換時間的設計方法
最常見的例子是用戶積分登錄次數的累加,按照范式設計,在users表中建立一個字段us_scores,以后需要在用戶積分改變時采用update的語句進行修改。但是知道update語句的執行速度是很慢的,為了避免大量重復使用它,優化的設計方案是建立us_scores表,存儲每次增加的積分,在查詢是采用SQL語句的sum方法來計算之。
(4)若數據庫有移植的可能性,不使用存儲過程及觸發器
(5)建立恰當的索引
索引的建立是加快數據庫查詢的基本技巧之一,通常的建議是,只有百萬級的記錄的表格才應該建立索引。
3、如何保證數據的安全性
最安全的設計方案是,Web數據庫和測試數據庫分離。Web數據庫權限只被管理員一個人掌握。
以上是“MySQL數據庫設計時如何優化”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。