高性能的数据库表设计原则
1 更小通常更好
选择表示数据的最小类型(正确存储你的内容):比如说,能够使用char 数据类型存储,就不必选择text,能够使用int型存储数据,就不应该使用long型。
理由:更小的数据类型使用了更小的磁盘空间,内存和cpu缓存,而且需要的cpu周期也更少。
PS:确保不会低估要存储的值。(能够很好的把握需求,对要存储的数据要比较精确的判断)
2 简单就好
这个好理解,尽可能选择简单的数据类型存储数据,mysql的数据类型不外乎int,long,char,varchar,text等等。那么在选择的时候,尽量选择最简单的基本数据 类型存储数据。比如我平常存储时间的时候一般都是存成int类型(转化成timestamp).
理由:越简单的数据类型,需要的cpu周期越少。
3 尽量避免null
尽可能的把字段定义为 not null
理由:Mysql 难以优化引用了可空列的查询,空列会使索引,索引统计和值更加复杂,可空列需要更多的存储空间。一般来说,设置默认值(DEFAULT)是个比较好 的习惯。当然该条对Mysql表性能的提升影响不是很大,不应放在最优先考虑的地位。
综上所述,我们在设计一个Mysql数据表的时候:
第一步:大致确定字段的数据类型,数字,字符串,时间等,比较直观
第二步:确定特定的类型,比如说 :数字里有tinyint,smallint,int,long等,选择最合适的一个(更小通常更好)
第三步:如有必要,请为字段设置默认值。
当然,索引优化肯定是必不可少的,不过这属于设计表完成之后的优化范围了。
posted on 2015-03-26 10:43 liuwenbohhh 阅读(265) 评论(0) 编辑 收藏 举报
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· dotnet 源代码生成器分析器入门
· Draw.io:你可能不知道的「白嫖级」图表绘制神器
· 官方的 MCP C# SDK:csharp-sdk
· 从零开始:基于 PyTorch 的图像分类模型
· [WPF] 在RichTextBox中输出Microsoft.Extension.Logging库的