★数据库建表优化

1、冷热分离: 一个表里最好不要存在即有常修改的数据又有不常修改的数据,一个好的做法是,把常修改更新的字段当做热表单独建表,同理不经常修改更新的字段当做冷表单独建表。

2、控制B+树的高度: 也就是控制一个表存储的数据行最好在300万到500万数据之间。

3、优先选择符合存储的最小数据类型: 并且例如varchar这种可变大小设置为2的n次方是一个好习惯。

4、禁止存放图片与文件: 因为图片或者文件数据过大,存储的时候会直接溢出变成BLOB,可以选择存储图片或文件的存放位置。

5、BLOB或TEXT单独存放: 单独存放这些会减少表所占大小,因为这两个数据存储很大。

6、禁止设置Null: 所有字段必须设置默认值,并且不允许为 null,如果一个字段没有设置默认值,而且允许为 null,那么在插入数据时,如果不显式地指定该字段的值,那么该字段的值就会是 null,这可能导致数据错误或逻辑混乱。

7、小数类型禁止使用 float 和 double : 在 MySQL 中,小数类型包括 float、double、decimal,虽然 float 和 double 可以存储比 decimal 更大的数值,但它们的精度问题可能会导致计算结果出错。

8、单表字段不要超过30个: 如果一个表中的字段太多,可能会导致 MySQL 性能下降、工作量增加。

9、单表索引数不要超过 5 个 : 在数据库中,为了提高查询效率,我们通常会在表的字段上创建索引。但是,索引会占用磁盘空间,维护索引也需要时间和资源。如果过度创建索引,将会导致查询变慢。建议:a.在确定要创建哪些索引时,可以优先考虑常用的查询条件和需要频繁更新的字段。例如:如果经常按日期范围查询,则可以在日期字段上创建索引。b.在创建索引时,避免在具有大量重复值的列上创建索引,会浪费磁盘空间(例如给性别字段创建索引)。c.使用索引优化器来确定哪些索引最适合特定查询。索引优化器可以帮助我们避免创建不必要的索引,并确保查询性能的最大化。d.建议使用联合索引。

10、 in过滤 条件中数量不宜过多: 在使用 IN 语句时:a.尽可能减少 IN 语句中包含的值的数量。b.如果需要查询多个值,可以考虑使用多个 OR 条件来替代 IN 语句。c.如果在 IN 语句中包含大量的值时,需要考虑使用其他的查询方式,常见的优化方法是将 IN 语句替换成 EXISTS 子查询。

11、尽可能的不用外键关联,改用存储关联id

12、使用like查询注意: like '%mysql' 和 like '%mysql%' 会无法用到索引,like 'mysql%'可以用到索引。

13、选择合适的搜索引擎:

14、固定长度的表会更快::变长的字段: VARCHAR,TEXT,BLOB。只要你的表中包括了其中一个这些字段,就不属于定长表。

15、设置主从读写分离

16、解决随机取值慢优化: Mysql解决随机选取问题

17、解决count()优化: Mysql count()为啥慢

18、语句不走索引的问题排查与优化: Mysql 不执行索引问题与优化

19、MySQL高级日志binlog、undoLog、redoLog: Mysql 高级日志binlog、undoLog、redoLog 详解

其他博客参考: 1、参考一

相关推荐
YMatrix 官方技术社区18 分钟前
时序 + 分析:YMatrix “智慧工厂“数据平台双方案详解
数据库·物联网·时序数据库·智能制造·数智工厂·ymatrix
熊文豪28 分钟前
电科金仓数据库KingbaseES V9R2C13元数据处理详解
数据库·金仓数据库·电科金仓·kes
小画家~38 分钟前
第四十三:redis 查找所有KEY应用方法
数据库·redis·bootstrap
攻心的子乐38 分钟前
redis 使用Pipelined 管道命令批量操作 减少网络操作次数
数据库·redis·缓存
QT 小鲜肉1 小时前
【Linux命令大全】001.文件管理之slocate命令(实操篇)
linux·运维·服务器·数据库·笔记
zfj3211 小时前
Linux 系统 I/O 监控命令大全
linux·服务器·数据库·io·监控
凯子坚持 c1 小时前
Qt常用控件指南(1)
开发语言·数据库·qt
Evand J1 小时前
【信号处理MATLAB例程】小波变换执行边缘检测、突变点识别和去噪功能。附代码下载链接
数据库·matlab·信号处理
MoonBit月兔1 小时前
用 MoonBit 打造的 Luna UI:日本开发者 mizchi 的 Web Components 实践
前端·数据库·mysql·ui·缓存·wasm·moonbit
天骄t2 小时前
HTML入门:从基础结构到表单实战
linux·数据库