第二次面试

文章探讨了SQL优化的基础和高级技巧,包括避免使用SELECT*,利用UNIONALL替代OR,以及使用EXPLAIN分析执行计划。同时,介绍了索引的类型如B+Tree和Hash,并讨论了何时使用索引。文章还涉及到了分表的概念,如水平和垂直拆分,并提到了在特定场景下使用索引的决策因素。
摘要由CSDN通过智能技术生成

目录

1、SQL优化方案

        基础sql优化:

        高级sql优化:

2、sql的索引区分

3、什么是分表

4、什么样的情况下使用索引


1、SQL优化方案

        基础sql优化:

                ·使用sql尽量不要使用select *,使用具体字段

                ·where子句的or条件可换成两个sql的union all连接

                ·在创建表时尽量使用varchar

                ·尽量使用数值代替字符串

                ·查询避免返回大量数据

                ·使用explain分析你的sql执行计划

                ·索引不应该太多,一般5个以内

                ·索引不适合建在有大量重复数据的字段上

                ·where表达式操作、内置函数、!=或<>、is null或 is not null可能使索引失效

                ·去重distince过滤字段要少

        高级sql优化:

                ·批量插入提升性能    

                ·分批次的删除数据提升性能

                ·伪删除设计,添加删除标识

                ·提高group by的效率,先过滤在分组

                ·不要超过5个以上的表连接

                ·优先使用内连接

                ·使用IN子查询优化

                ·尽量使用union all替代union

2、sql的索引区分

        按数据结构分类:B+tree索引、Hash索引、Full-text索引

        物理存储分类:聚簇索引、二级索引(辅助索引)

        字段特性分类:主键索引、普通索引、前缀索引

        字段个数分类:单例索引、联合索引(复合索引、组合索引)

3、什么是分表

        水平拆分:以字段为依据,将数据拆分到不同表中,每个表结构都一样

        垂直拆分:以字段为依据来拆分表,将字段拆分到不同表中,每个表的结构都不同

4、什么样的情况下使用索引

        在where和order by中经常出现的字段就创建索引(排序字段创建索引)

        当数据的数量达到某一个阈值

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值