MySQL在实际应用中的规范(表定义、SQL、索引等)

本文介绍了MySQL在实际应用中的规范,包括统一使用InnoDB存储引擎和utf8字符集,限制数据库和表的规模,强调合理创建和使用索引,遵循SQL查询规范,以及命名和安全性方面的注意事项。避免存储大对象,不做GIS运算,不使用存储过程,限制索引数量和长度,避免函数计算和全表扫描,提倡简单SQL和字段类型匹配,使用乐观锁,并确保环境和权限隔离。
摘要由CSDN通过智能技术生成

 

统一规范

存储引擎: 请统一使用innodb存储引擎,特殊的数据库引擎必须通过DBA的评审。

字符集: 统一使用utf8字符集。这个要从应用程序、服务器、数据库的表、字段等全部统一起来。注意:MySQL中的utf8mb4字符集,才是真正的utf8,请用这个。

作用范围:不要在MySQL存储大对象,比如图片、音乐等;不要用MySQL做Gis运算、全文检索;不使用存储过程、触发器、函数、外键,避免破坏数据库的性能和扩展性。

使用上限:

  • 每个MySQL实例,数据库不要超过50个;
  • 单数据库容量,不要超过500GB,否则分库;
  • 单表记录数量,不要超过5000W,否则分表;
  • 单表子段数量,不要超过30个,否则拆表;
  • 单张表中索引数量不超过5个,单个索引中的字段数不超过5个;
  • varchar字段最大值不超过1024;注意:VARCHAR(N)中的N表示字符数而非字节数

索引

  1. 数据量比较小,一般认为2000条以下不用建立索引
  2. 选择性很小的字段,比如status、type等,只有几个值,不需要索引。因为数据库查询数据只有两种方式,一种是可以快速定位到记录,另一种是全表扫描。比如status只有0或者1,在5000W数据里面各占一半,索引没有意义。
  3. 索引内容尽
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值