ITPub博客

首页 > 数据库 > > 白盒测试之SQL语句测试和SQL优化

白盒测试之SQL语句测试和SQL优化

作者:浪花小雨滴 时间:2020-05-14 14:23:15 0 删除 编辑

SQL语句测试主要检查以下两点内容:

1. 语句的检查

(1)检查每个数据库对象是否都有拥有者;

(2)检查表,表是DB的基本单位,由行和列组成,用于存储数据;

(3)检查数据类型,Data Type限制输入到表中的数据类型;

(4)检查约束Constraint,Constraint有主键、外键、唯一键、缺省和检查5种;

(5)检查插入的缺省值,Default: 自动插入常量值;

(6)检查Rule: 限制表中列的取值范围;

(7)检查触发器,Trigger: 一种特殊类型的储存过程,当有操作影响到他保护的数据时,自动触发执行;

(8)检查索引Index,Index: 提高查询速度;

(9)检查视图View, View: 查看一个或多个表的一种方式;

(10)检查存储过程,Stored Procedure: 一组预编译的SQL语句,可以完成指定的操作。

2. 类型转换检查

检查SQL语句的类型转换时,主要避免显示或隐含的类型转换。


SQL语句的优化可以从以下几个方面着手:

1.在数据库建表的时候要考虑下面几个影响性能的要素:

(1)主键使用合适的unsigned整型类型,并设置自增避免数据增加时索引页分裂;

(2)选择合适的字符串数据类型和日期类型, 优先使用TIMESTAMP,因为仅占用4字节;

(3)长度固定的字符串字段使用char类型,varchar会额外使用1或者2个字节存储字符串长度(长度小于255使用1字节)。

(4)能使用整数类型的就尽量不要使用字符串类型。

2.在数据库建索引的时候要考虑下面几个影响性能的要素:

(1)尽量使用单独的列,不对索引进行表达式或者函数运算

(2)对于TEXT、BLOB或者很长的varchar类型的列,使用前缀索引

(3)多列索引选择合适的索引列顺序

(4)能使用覆盖索引的使用覆盖索引、使用索引排序

(5)索引列字段应不为NULL, 否则会导致索引失效

(6)索引保持在5条左右,过多会影响插入和更新性能

3.在数据库使用查询语句时候要考虑下面几个影响性能的要素:

(1)使用查询语句要避免索引失效

(2)使用explain查询SQL优化器执行计划,调整SQL查询

(3)使用not exists代替not in,not in不会使用索引

(4)查询条件避免使用前导模糊查询,如'%xxx',因为无法使用索引

(5)查询条件使用or的话,要保证or两边的列都要有索引,否则索引失效

(6)查询只需要一条记录时使用limit 1, 避免全表扫描

(7)字符串类型字段为数字字符串时,在where条件中要加单引号,否则索引失效,因为这样MySQL会将表中字符串类型转换为数字之后再比较,导致索引失效

(8)多列索引要满足最左前缀要求

(9)is null判断不走索引,要慎用

(10)LIMIT分页的页码不能太大,会查询出所有的结果然后丢弃掉不需要的。使用主键做连接查询


如果知友对这部分内容感兴趣,可以持续关注小编的账号,除此之外,小编还录制了不少其他软件测试方面的技术视频,知友如果有需要,可以私聊本小编获取哦!

第一阶段:全栈测试环境配置管理

第二阶段:全栈测试数据管理与数据库测试

第三阶段:WEB栈测试技术

第四阶段:通用测试技术

第五阶段:测试开发技术

第六阶段:移动栈测试

第七阶段:python语言和selenium

第八阶段:接口测试和性能测试

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3164296/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    39958