第六章 schema设计与管理

本文涉及的产品
RDS AI 助手,专业版
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 
相关文章
|
存储 内存技术
[硬件]关于SPI Flash那些你不知道的事儿
刚开始学习STM32时,对SPI Flash的块、扇区的概念模糊不清,现在回头再看,感觉豁然开朗
1221 0
[硬件]关于SPI Flash那些你不知道的事儿
|
19天前
|
机器学习/深度学习 人工智能 算法
2026年Geo优化的底层逻辑:从语义占位到数字信任的范式重构
“两大核心+四轮驱动”体系,不仅是获客提效的工具,更是企业在AI语义空间中构建数字信任资产的底层协议。
144 1
|
vr&ar C# 图形学
从零开始的PICO开发教程(4)-- VR世界 射线传送、旋转和移动
这篇文章是PICO开发系列教程的第四部分,详细介绍了在VR世界中实现射线传送、视角旋转和人物移动的方法,包括使用Teleportation组件进行区域传送和锚点传送,通过Snap Turn Provider组件实现视角快速旋转,以及创建PlayControl脚本来控制人物移动,并通过手柄与脚本组件的交互来增强VR体验。
|
机器学习/深度学习 人工智能 供应链
AI智能分析
AI智能分析运用人工智能技术对数据进行深度挖掘和模式识别,助力商业智能、法律分析、医疗健康、股票市场、产品设计和技术研发等领域。通过机器学习和深度学习,AI能优化商业策略、提升诊断精度、辅助投资决策,并解决技术难题,为各行各业提供精准洞察和决策支持。
630 1
|
安全 API 网络架构
Python中哪个框架最适合做API?
本文介绍了Python生态系统中几个流行的API框架,包括Flask、FastAPI、Django Rest Framework(DRF)、Falcon和Tornado。每个框架都有其独特的优势和适用场景。Flask轻量灵活,适合小型项目;FastAPI高性能且自动生成文档,适合需要高吞吐量的API;DRF功能强大,适合复杂应用;Falcon高性能低延迟,适合快速API开发;Tornado异步非阻塞,适合高并发场景。文章通过示例代码和优缺点分析,帮助开发者根据项目需求选择合适的框架。
2621 0
windows 乱码之 gbk 与 cp936|4-3
windows 乱码之 gbk 与 cp936|4-3
|
人工智能 开发框架 前端开发
适合假期自学一战成名的必看秘籍-五板斧打造AgentScope应用
本文写给有一定编程基础的学习者,得以入门 源码级 开发Agentscope应用,并上线创空间,参加AgentScope的应用开发挑战赛。
适合假期自学一战成名的必看秘籍-五板斧打造AgentScope应用
|
计算机视觉 Python Windows
OpenCV自动裁剪图片
OpenCV自动裁剪图片
352 1
|
运维 安全 网络架构
【专栏】NAT技术是连接私有网络与互联网的关键,缓解IPv4地址短缺,增强安全性和管理性
【4月更文挑战第28天】NAT技术是连接私有网络与互联网的关键,缓解IPv4地址短缺,增强安全性和管理性。本文阐述了五大NAT类型:全锥形NAT(安全低,利于P2P)、限制锥形NAT(增加安全性)、端口限制锥形NAT(更安全,可能影响协议)、对称NAT(高安全,可能导致兼容性问题)和动态NAT(公网IP有限时适用)。选择NAT类型需考虑安全性、通信模式、IP地址数量和设备兼容性,以确保网络高效、安全运行。
1913 1