程序员面试之MySQL数据库表的设计
如果要選擇一門程序員必備的技能,那答案無疑是數(shù)據(jù)庫,而MySQL是首選。很多企業(yè)在面試過程中會提問MySQL數(shù)據(jù)庫表設(shè)計(jì)要注意什么,接下來小千就給大家講解一下。
MySQL相較于MSSQL SERVER和Oracle,是一款功能強(qiáng)大的小型數(shù)據(jù)庫,能很好的滿足千萬級數(shù)據(jù)量的項(xiàng)目需要。注意,MySQL本身是沒有可視化界面的,在Windows系統(tǒng)中你可以通過dos命令進(jìn)行簡單的連接和查看,在Linux系統(tǒng)下可以通過MySQL的命令進(jìn)行連接查看。
MySQL支持很多種不同的數(shù)據(jù)類型,并且選擇正確的數(shù)據(jù)類型對于獲得高性能至關(guān)重要。在設(shè)計(jì)MySQL表時,你需要注意五點(diǎn):
1、一定要設(shè)計(jì)主鍵
主鍵,又叫主關(guān)鍵字,用來唯一地標(biāo)識表中的某一條記錄。它能保證實(shí)體的完整性,加快數(shù)據(jù)庫的操作速度,這一點(diǎn)很重要。主鍵使用自增最佳,這樣每次插入新的記錄,記錄就會順序添加到當(dāng)前索引節(jié)點(diǎn)的后續(xù)位置,當(dāng)一頁寫滿,就會自動開辟一個新的頁。如果不是自增主鍵,那么可能會在中間插入,就會引發(fā)頁的分裂,產(chǎn)生很多表碎片。
2、字段命名盡量避開保留字
在給字段命名的時候,要盡量避開關(guān)鍵字,以免出了問題而不好查找。雖然在以關(guān)鍵字命名的字段上加’'可以不再報錯,但保險起見,就不要這么設(shè)計(jì)。
3、表名長度盡可能短
表名稱不要太長,Oracle限制字符為30個,如果有轉(zhuǎn)數(shù)據(jù)庫的需要,表名太長無疑會增加轉(zhuǎn)換的工作量。
4、盡可能不使用default null
NULL值不能進(jìn)行索引,影響索引的統(tǒng)計(jì)信息,影響優(yōu)化器的判斷。復(fù)合索引中只要有一列含有NULL值,那么這一列對于此復(fù)合索引就是無效的。
5、時間戳Timestamp
每個表的最后都加一個create_time為時間戳類型timestamp的字段,該方式對于調(diào)試階段非常有幫助。
6、不要直接存儲圖片、音頻、視頻等大容量內(nèi)容
MySQL中有兩個字段類型被用來設(shè)計(jì)存放大容量文件:TEXT和BLOB類型。但MySQL內(nèi)存臨時表并不支持這樣的大數(shù)據(jù)類型,如果查詢中包含這樣的數(shù)據(jù),在排序等操作時,就不能使用內(nèi)存臨時表,必須使用磁盤臨時表進(jìn)行,導(dǎo)致查詢效率緩慢。同時因?yàn)閿?shù)據(jù)內(nèi)容比較大,就會造成binlog內(nèi)容比較多,導(dǎo)致主從同步效率問題。
了解更多數(shù)據(jù)庫優(yōu)化知識,只要你的技術(shù)能夠滿足企業(yè)的需要,你就能拿到滿意的薪資。如果你真的想要學(xué)好編程開發(fā),可以選擇專業(yè)的學(xué)習(xí),讓自己更好的進(jìn)入編程行業(yè)。
本文來自千鋒教育,轉(zhuǎn)載請注明出處。
總結(jié)
以上是生活随笔為你收集整理的程序员面试之MySQL数据库表的设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: web前端技术分享:koa中间件是如何实
- 下一篇: linux cmake编译源码,linu