informix之二
江建明
2023-12-01
大数据量表查找 匹配索引避免全表扫描;
效率比较低的sql语句,set explain on查看执行计划,分析效率瓶颈(有没有利用索引);
对索引字段定期执行统计更新,给数据库的优化器提供准确的信息,提供正确的优化策略(经常插入删除的大表);
建立索引的时候,唯一值多的字段尽量防在前面,重复度高的字段(唯一值少)最好不建立索引;
使用聚集索引,使数据相对按照索引的顺序进行存放,用某些条件查询的时候,可以降低整个disk的IO次数,避免排序和分组操作;
程序使用过程中发现优化器指定的索引不理想,informix可以用指定索引的方式,让sql语句按照指定的索引执行;
索引建立的原则:
1.两个表关联,对关联字段建立索引;
2.where条件里面经常用到的条件字段;
3.order by排序的字段建立索引;
4.避免对重复度比较高的、唯一性不高的字段建立索引;
5.使用组合索引,降低索引的重复度;
6.建立多字段索引的时候,尽量把唯一性高的字段放在前面,唯一性低的字段放在后面;
7.控制表索引的个数,索引过多影响插入删除更新速度;
8.使用聚集索引提高查询速度;
9.数字类型的字段要比其他类型字段的查找速度要快;
有些地方使用存储过程:
1.经常反复执行的sql语句,减少交互数据量,提高性能;
prepare:
sql语句在循环里面执行100次以上,sql语句避免使用静态sql,使用prepare,只编译一次。注意:prepare不要放在循环里面。
informix设置数据分布:指定表在片上的分布;
批量处理 pdq
索引的level 大于4层考虑重建索引
裸表 没有日志的表 大数据量insert操作有好处 裸表没有事物
分片技术和pdq 大数据量表的分片 临时建立索引使用pdq