十年架构师经验之谈:Mysql高性能优化规范建议

数据库命令规范

  • 所有数据库对象名称必须使用小写字母并用下划线分割

  • 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来)

  • 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符

  • 临时库表必须以tmp_为前缀并以日期为后缀,备份表必须以bak_为前缀并以日期(时间戳)为后缀

  • 所有存储相同数据的列名和列类型必须一致(一般作为关联列,如果查询时关联列类型不一致会自动进行数据类型隐式转换,会造成列上的索引失效,导致查询效率降低)


数据库基本设计规范

1. 所有表必须使用Innodb存储引擎

没有特殊要求(即Innodb无法满足的功能如:列存储,存储空间数据等)的情况下,所有表必须使用Innodb存储引擎(mysql5.5之前默认使用Myisam,5.6以后默认的为Innodb)。

Innodb 支持事务,支持行级锁,更好的恢复性,高并发下性能更好。

2. 数据库和表的字符集统一使用UTF8

兼容性更好,统一字符集可以避免由于字符集转换产生的乱码,不同的字符集进行比较前需要进行转换会造成索引失效,如果数据库中有存储emoji表情的需要,字符集需要采用utf8mb4字符集。

3. 所有表和字段都需要添加注释

使用comment从句添加表和列的备注,从一开始就进行数据字典的维护

4. 尽量控制单表数据量的大小,建议控制在500万以内。

500万并不是Mysql数据库的限制,过大会造成修改表结构,备份,恢复都会有很大的问题。

可以用历史数据归档(应用于日志数据),分库分表(应用于业务数据)等手段来控制数据量大小

5. 谨慎使用Mysql分区表

分区表在物理上表现为多个文件,在逻辑上表现为一个表;

谨慎选择分区键,跨分区查询效率可能更低;

建议采用物理分表的方式管理大数据。

6. 尽量做到冷热数据分离,减小表的宽度

Mysql限制每个表最多存储4096列,并且每一行数据的大小不能超过65535字节。

减少磁盘IO,保证热数据的内存缓存命中率(表越宽,把表装载进内存缓冲池时所占用的内存也就越大,也会消耗更多的IO);

更有效的利用缓存,避免读入无用的冷数据;

经常一起使用的列放到一个表中(避免更多的关联操作)。

7. 禁止在表中建立预留字段

预留字段的命名很难做到见名识义。

预留字段无法确认存储的数据类型,所以无法选择合适的类型。

对预留字段类型的修改,会对表进行锁定。

8. 禁止在数据库中存储图片,文件等大的二进制数据

通常文件很大,会短时间内造成数据量快速增长,数据库进行数据库读取时,通常会进行大量的随机IO操作,文件很大时,IO操作很耗时。

通常存储于文件服务器,数据库只存储文件地址信息

9. 禁止在线上做数据库压力测试

10. 禁止从开发环境,测试环境直接连接生成环境数据库


数据库字段设计规范

1. 优先选择符合存储需要的最小的数据类型

原因:

列的字段越大,建立索引时所需要的空间也就越大,这样一页中所能存储的索引节点的数量也就越少也越少,在遍历时所需要的IO次数也就越多,索引的性能也就越差。

方法:

1、将字符串转换成数字类型存储,如&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL架构执行与SQL性能优化MySQL数据库优化训练营四期课程中的重点内容。在并发场景下,数据库性能优化非常重要。MySQL架构执行与SQL性能优化主要涉及以下几个方面: 一、MySQL架构执行 MySQL是一种关系型数据库管理系统,采用了典型的客户端-服务器架构。它由多个组件组成,包括连接器、查询缓存、解析器、优化器、执行器等。在MySQL架构执行中,通过对MySQL内部各个组件的功能和工作原理的深入了解,可以优化SQL执行流程,提升数据库的效率。 二、SQL性能优化 SQL性能优化是提数据库性能的重要手段之一。通过优化SQL查询语句的编写和索引的使用,可以减少数据库的响应时间,提查询速度。具体的优化技巧包括避免全表扫描、使用合适的索引、合理使用数据库的分区等。 三、MySQL并发 并发是指系统在同一时间段内有大量请求访问数据库,对数据库的负载能力提出了更的要求。在面对并发的场景中,需要考虑并发控制、读写分离、连接池的调优等方面的问题,以提系统的稳定性和性能。 四、MySQL数据库优化训练营四期课程 MySQL数据库优化训练营四期课程是一门系统性的数据库优化学习课程。通过学习该课程,可以深入了解MySQL架构执行和SQL性能优化的原理和方法,提升对MySQL数据库的理解和应用能力。本期课程关注并发场景下的性能优化,包括了实用的优化技巧和实战案例分析。 总之,MySQL架构执行与SQL性能优化是提升MySQL数据库效率的关键。通过深入学习和实践,掌握相关的优化技巧和方法,可以提数据库在并发场景下的吞吐量和响应速度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值