第六章 schema设计与管理

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 第六章 schema设计与管理

选择数据的类型

更⼩的通常更好

简单为好

尽量避免存储null

整数类型

对于计算和存储来说INT(1)和INT(20)是相同的。

实数类型

带有⼩数部分的数字,建议只指定类型,不指定精度。

字符串类型

varchar可变⻓度字符串类型,使⽤1或2字节记录字符串⻓度。

char是固定⻓度,经常修改的情况适⽤于char,因为没有内存碎⽚。

最好分配合适的空间

使⽤VARCHAR(5)和VARCHAR(200)显然⼩的更加节省空间。

BLOB和TEXT类型

BLOB使⽤的是⼆进制数据,没有排序规则和字符集,但

Text类型有字符集和排序规则。不能使⽤索引进⾏排序。

在数据库中存储图像

尽量不要在数据库中存储图像数据,⽽是使⽤单独的图像对象存储,并跟踪图⽚的位置。

MySQL schema设计上的陷阱

太多的列,MySQL的⾏数据转换与列的数量有关。

太多的连接,

null不是虚拟值

MySQL会对null进⾏索引,尽量不使⽤null,使⽤其他值替代null。

⼩结:

简⽽⾔之,让事情尽可能⼩⽽简单是⼀个好主意。

请记住以下指导原则:

● 尽量避免在设计中出现极端情况,例如,强制执⾏⾮常复杂的查询或者包含很多列的表设计(很多的意思是介于有点多和⾮常多之间)。

● 使⽤⼩的、简单的、适当的数据类型,并避免使⽤

NULL,除⾮确实是对真实数据进⾏建模的正确⽅法。

2● 尝试使⽤相同的数据类型来存储相似或相关的值,尤其是在联接条件中使⽤这些值时。

● 注意可变⻓度字符串,它可能会导致临时表和排序的全⻓内存分配不乐观。

● 如果可能的话,尝试使⽤整数作为标识符。

● 避免使⽤⼀些传统的MySQL技巧,例如,指定浮点数的精度或整数的显示宽度。

● ⼩⼼使⽤ENUM和SET类型。它们很⽅便,但也可能被滥⽤,有时还很棘⼿。另外

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
vr&ar C# 图形学
从零开始的PICO开发教程(4)-- VR世界 射线传送、旋转和移动
这篇文章是PICO开发系列教程的第四部分,详细介绍了在VR世界中实现射线传送、视角旋转和人物移动的方法,包括使用Teleportation组件进行区域传送和锚点传送,通过Snap Turn Provider组件实现视角快速旋转,以及创建PlayControl脚本来控制人物移动,并通过手柄与脚本组件的交互来增强VR体验。
|
安全 API 网络架构
Python中哪个框架最适合做API?
本文介绍了Python生态系统中几个流行的API框架,包括Flask、FastAPI、Django Rest Framework(DRF)、Falcon和Tornado。每个框架都有其独特的优势和适用场景。Flask轻量灵活,适合小型项目;FastAPI高性能且自动生成文档,适合需要高吞吐量的API;DRF功能强大,适合复杂应用;Falcon高性能低延迟,适合快速API开发;Tornado异步非阻塞,适合高并发场景。文章通过示例代码和优缺点分析,帮助开发者根据项目需求选择合适的框架。
2450 0
|
12天前
|
数据采集 人工智能 安全
|
8天前
|
编解码 人工智能 自然语言处理
⚽阿里云百炼通义万相 2.6 视频生成玩法手册
通义万相Wan 2.6是全球首个支持角色扮演的AI视频生成模型,可基于参考视频形象与音色生成多角色合拍、多镜头叙事的15秒长视频,实现声画同步、智能分镜,适用于影视创作、营销展示等场景。
625 4

热门文章

最新文章