mysql

排序和分组

有distinct、order by和group by子句的查询,中间结果集限制10000行以内

对于大结果集(中间结果集超过10000行)的排序、分组放到程序端实现

事务

事务中INSERT|UPDATE|DELETE|REPLACE语句操作的行数控制在2000,以及WHERE子句中IN列表的传参个数控制在2000

批量操作数据时,需要控制事务处理间隔时间,进行必要的sleep,具体值由DBA给出,并且程序必须有中断处理能力

对于有auto_increment属性字段的表的插入操作,并发需要控制在200以内

SQL级别/事务级别/主从数据库中的表存储引擎类型要一致,存储引擎混合使用会导致主从数据不一致或主从同步中断(但涉及InfoBright表的情况除外)

对于同步延迟不敏感的只读查询,必须放到从库上执行;对于同步延迟敏感的只读查询,可以放到主库上执行

前端程序中禁止使用set语句,包括set names、set sql_mode和set isolation_level等

多表联合查询

多表连接查询推荐使用别名,且SELECT列表中要用别名引用字段,数据库.表格式,如“select a.cid  from iknow_qb. tblreply a where …”

生产系统中,单个查询中不推荐将3张表以上(包括3张表)做连接

生产系统中,强烈不推荐使用外关联,包括左外关联,右外关联和全外关联

在多表连接的查询中,驱动表须要选择结果集较小的表

禁止写成多层子查询嵌套的SQL语句,推荐改写成表顺序连接的格式

禁止在INSERT|UPDATE|DELETE|REPLACE语句中进行多表连接操作

SELECT语句

SELECT语句必须指定具体字段名称,禁止写成“*”

SELECT语句禁止使用UNION,推荐使用UNION ALL,并且UNION子句个数限制在5个以内

转载于:https://www.cnblogs.com/yuqianwen/p/4026371.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值