数据库
首页 > 数据库> > SQL 优化

SQL 优化

作者:互联网

 

1、从代码逻辑上优化,规避复杂SQL

 举例:计算比例C=A/B,将B的值,通过异步任务计算B的值,存入数据库,在实际查询中直接取值,避免关联查询造成SQL性能问题。

 

2、根据不同业务需求,使用不同数据库,使用ClickHouse替代MySQL

SELECT ITEM_FIRST_CATE_CODE,
        ITEM_FIRST_CATE_NAME itemFirstCateName,
        ITEM_SECOND_CATE_CODE,
        ITEM_SECOND_CATE_NAME itemSecondCateName,
        ITEM_THIRD_CATE_CODE,
        ITEM_THIRD_CATE_NAME itemThirdCateName,
        COUNT(1) skuNumber,
        SUM(WMS_STOCK_QTY) itemNumber
        FROM MOVE_PROGRAM_SKU_DETAIL
        WHERE main_id= 649 
        GROUP BY ITEM_FIRST_CATE_CODE,
        ITEM_SECOND_CATE_CODE,
        ITEM_THIRD_CATE_CODE
        ORDER BY ITEM_FIRST_CATE_NAME,
        ITEM_SECOND_CATE_NAME,
        skuNumber DESC,
        itemNumber DESC

举例:MySQL数据库,数据量几千万,查询以上SQL,查询失败,后来将数据存入ClickHouse,几秒钟就可以查询出结果

 

3、添加索引

 

4、避免索引失效

a、遵守最左前缀原则

a-1、不使用like '%a'

a-2、在联合索引(a,b,c)中,不使用b=XX and c=XX

 

5、select 语句

a、SELECT语句指明字段名称

 

 

6、where 语句

a、避免where 语句中对字段进行表达式操作

b、应尽量避免在where语句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描

 

参考文档:

1)sql优化的N种方法_持续更新

https://blog.csdn.net/wang5701071/article/details/108797859

标签:CODE,NAME,ITEM,SECOND,SQL,FIRST,优化,CATE
来源: https://www.cnblogs.com/wllzbky/p/16367571.html