热线电话:13121318867

登录
2020-07-09 阅读量: 884
0709CDA数据分析第九天

sql优化(面试必问一)

前言:7月13号 至7月26号面试总结


比较棘手的的问题:


近来面试找工作经常会遇见这种问题: 做过数据库优化吗?大数据量基础过吗?系统反应慢怎么查询?


这时候就需要你谈一下sql优化相关的内容 , 一下几个方面


1、慢查询


2、索引


3、拆分表


数据库索引变快

全部检索(扫描)

系统集成



二叉树算法--》索引文件 物理位置

log2N 检索10次可以检索2的10次方个数(1024)


全文索引,主要是针对对文件,文本的检索, 比如文章, 全文索引针对MyISAM有用.

select * from articles where match(title,body) against(‘database’); 【可以】


唯一索引

unique空串(null)可以放多个 如果是具体的内容则不能重复


a: 肯定在where条经常使用

b: 该字段的内容不是唯一的几个值(sex) (只有三个数据形成2级二叉树)

c: 字段内容不是频繁变化.


联合索引


分表、水平分割


知识点、项目


sql优化(查询9:1)

1. 尽量使用列名(Oracle9i之后, *和列名一样)

在业务密集的SQL当中尽量不采用IN操作符,用EXISTS 方案代替。


2、模糊查询like

关键词%yue%,由于yue前面用到了“%”,因此该查询必然走全表扫描,除非必要,否则不要在关键词前加%,


3 二者都能使用尽量使用where (与having比较)

where 先过滤(数据就少了)在分组


4: 理论上,尽量使用多表连接(join)查询(避免子查询)


show status like 'uptime';

show [session|global] status like 'com_select';

show status like 'connections';

慢查询(默认10秒)

show status like 'slow_querties';



以安全模式启动



SHOW INDEX FROM emp


BTREE


20180327更新


B树:有序数组+平衡多叉树;


B+树:有序数组链表+平衡多叉树;



————————————————

版权声明:本文为CSDN博主「tian31233」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/tian31233/article/details/52052963


32.1444
2
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子