面试DB优化
高频全表扫描 |
0.5 |
表大小超过200M,且SQL高频执行(15分钟内超过500次),PIR 3级,表大小超过高速缓存的1.5%,报PIR 2级。 |
禁止使用select * |
0.5 |
禁止使用select * ,必须明确选择所需的列,每句SQL扣0.5分。 |
禁止出现重复查询子句 |
0.5 |
可以使用with as替换子句来提升SQL语句执行效率,每句SQL扣0.5分。 |
索引列函数 |
0.5 |
在查询索引列上发生函数调用(函数索引除外),每次扣0.5分。 |
update禁止出现order by子句 |
0.5 |
防止DML过程出现不必要的排序,每句SQL扣0.5分。 |
update必须出现where子句 |
1.0 |
防止DML过程出现全表锁,每句SQL扣1分。 |
禁止更新主键列值 |
1.0 |
不允许有SQL更新主键,每次SQL扣1分。 |
禁止嵌套select子句 |
0.5 |
防止出现select子句的嵌套子查询,避免出现性能问题,每句SQL扣0.5分。 |
delete必须出现where子句 |
1.0 |
防止DML过程出现全表锁,每句SQL扣1分。 |
delete禁止出现order by子句 |
1.0 |
防止DML过程出现不必要的排序,每句SQL扣0.5分。 |
索引全扫 |
0.1 |
执行计划里有INDEX FULL SCAN操作,每次扣0.1分。 |
索引跳跃 |
0.2 |
执行计划里有INDEX SKIP SCAN操作,每次扣0.2分。 |
全表扫描 |
0.5 |
对于大于200M的表全表扫描,执行计划里有TABLE ACCESS FULL操作,每次扣0.5分。 |
笛卡尔积 |
1.0 |
缺少连接条件,导致SQL使用笛卡尔积的方式进行连接,每句SQL扣1分。 |
嵌套连接过深 |
1.0 |
执行计划中嵌套连接深度超过6层,每句SQL扣1分。 |
绑定变量 |
0.2 |
未使用绑定变量的SQL,每句SQL扣0.2分。 |
隐式转换 |
0.5 |
在查询列上发生隐式转换,每次扣0.5分。 |
最新文章
- Cats(1)- 从Free开始,Free cats
- 13 年的 Bug 调试经验总结
- runv kill 流程分析
- js中substring和substr的用法 (转)
- Spting使用memcached
- zepto API参考(~~比较全面)
- kindeditor编辑器上传图片失败 错误 405.0解决办法(亲测)
- C语言::模拟实现strlen函数
- python学习之字符串(下)
- Django-路由控制
- Ansible-Zabbix-基础agent批量装机
- Scrapy爬虫学习笔记 - windows \ linux下搭建开发环境2
- 如何对接oracle 建立pdb
- [转]linux shell 多线程实现
- 非Spring环境下使用Mybatis操作数据库的流程
- Finding the source of signals on Linux with strace, auditd, or systemtap
- Python之路----生成器函数进阶
- 谈谈http与https
- spark、hadoop集群添加节点
- C#语法之委托和事件