数据库表的优化

一、两表优化

两表建立左右连接要考虑性能问题,建索引记住左连接时mysql先考虑如何右表搜索行,右连接同理,规律是:左表连右表,右表建索引,右表连左表,左表建索引

二、三表优化

采用左关联两张表时,要在主表对应的外表字段建立索引

比如 select * from user lefit join order on user.cid=order.cid left join balance b on order.time=b.time;

对order的cid加索引和b.time

Alter table ‘order’add index z(‘cid’);

Alter table ‘balace index z(‘time’);

  • 三、避免索引失效

  • 1、全值匹配  Alter table ‘user index z(‘name’,’age’,’phone’);

    多个索引列同时查询ok的,当name,phone查询索引部分使用到,name使用到索引,phone索引失效。

    2、最佳左前缀

    如果索引多个列,要遵守最左前缀法则,就是查询从最左索引开始,不能跳过左边索引列

    比如: Alter table ‘user index z(‘name’,’age’,’phone’);

    查询使用select *from user where age=1;失效,要保证有name,才能根据后面条件进行查询

    3、不在索引列上做任何操作(计算、函数、(自动or手动)类型转换),会导致索引失效而转向全表扫描。

    比如:select *from user where left(name,4)=’yygs’; name索引失效

  • 存储引擎不能使用索引中范围条件右边的列
  • 比如:select *from user u where u.name=’jack’ and age>10;

    Type达到range级别,索引失效,范围查询增加了查询程度;

    5、尽量使用覆盖索引(只访问索引的查询(索引列和查询列一致)),减少select *

    6、mysql在使用不等于或<>时候导致索引失效

    7、is null,is not null也无法使用索引

    8、like以通配符开头(%abc..)mysql索引失效

    未建立索引情况下like ‘%name%’,全文扫码

    单独左边百分号用不上索引,右边百分号会用到索引range级别

    强制双边都有百分号,要求使用覆盖索引,建立索引为name,age,双边查询时使用

    Select name,age from user where name like ‘%张三%’;索引生效

    Select name,age,email from user where name like ‘%张三%’;索引失效

    Select name,age,id from user where name like ‘%张三%’;索引生效

    9、字符串不加单引号索引会失效

    Select * from user where name=’yyg’索引生效,name已建立索引

    Select * from user where name=yyg索引失效,mysql底层做了隐式类型转换,name已建立索引

    10、少用or,用它连接时索引失效

    最后一个出现了filesort,比较严重,mysql内部强制排序查询

      

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,以下是对Flowable数据库优化的一些建议: 1. 索引优化:为频繁查询的字段创建索引,以加快查询速度。可以使用`CREATE INDEX`语句来创建索引。 2. 分区:对于大型,可以考虑将其分成多个分区,以提高查询性能。可以使用`PARTITION BY`语句来进行分区。 3. 数据库连接池配置:合理配置数据库连接池的参数,如最大连接数、最小连接数、连接超时时间等,以提高数据库的并发处理能力。 4. 数据库缓存:使用适当的缓存机制,如Redis或Memcached,可以减轻数据库的负载,提高系统的响应速度。 5. 数据库归档和清理:定期归档和清理不再使用的数据,以减少数据库的存储空间和提高查询性能。 6. 数据库分片:对于数据量非常大的系统,可以考虑使用数据库分片技术,将数据分散存储在多个数据库中,以提高系统的扩展性和性能。 7. SQL优化:对于复杂的查询语句,可以通过优化SQL语句、合理使用索引、避免全扫描等方式来提高查询性能。 8. 数据库服务器优化:合理配置数据库服务器的硬件资源,如CPU、内存、磁盘等,以提高数据库的处理能力。 9. 数据库备份和恢复:定期进行数据库的备份,并测试恢复过程,以保证数据的安全性和可靠性。 这些是一些常见的Flowable数据库优化建议,具体的优化策略需要根据实际情况进行调整和实施。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值