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

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/ ,如需转载,请注明出处,否则将追究法律责任。