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








暂无数据