MySql开发规范

使用Mysql替代oracle之前:
1、主键:表必须要有主键,最还是自增主键,一定是innodb引擎
2、加字段:由于MySql 5.5还不支持online ddl(加字段锁表),因此要控制单表数据量以减少DDL时间(建议数据量不要超过千万)
3、冗余:应平衡范式和冗余,是当地在表中冗余字段(比如userid、name之类),可以减少关联查询。
4、存储过程:数据库扩容太难(涉及数据重新分布),尽量不在数据库做复杂运算,比如存储过程、函数、触发器。
5、大事务:在查询或事务处理上,应尽量化复杂为简单,复杂SQL应拆分为多步骤实现,拒绝大事务(比如一条SQL更新了几百万条记录)
6、数据导入:批量数据导入应尽量使用LoadData,或是批量插入,而不是单挑导入数据。
7、Join查询:由于MySql执行计划只支持Nest Loop,尽量减少超过3个表以上的关联查询。
8、子查询:MySQL 5.5版本及以下禁用子查询(In、Exists)。
9、专业度:建议有专业DBA参与,包括数据库架构设计、SQL查询和索引创建等。
10、MySQL 执行计划仅支持NestLoop嵌套查询,对多表关联Join查询的支持非常弱,对大数据大的处理弱。
11、存储过程、函数功能支持弱,大部分Oracle语法都不兼容
12、考虑到扩展性,数据量大的或对性能有要求的应尽量使用MySQL分库分表,建议使用DRDS。
13、MySQL的使用和运维门槛极高(因为存在MySQLbug、问题debug、特殊SQL优化等),使用RDS是个很好的选择。阿里云上有超过100w公用云用户在使用RDS,稳定性和安全都有极大保障。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值