1.什么是索引 A8站源码交易平台
索引指数据库的目录,比方:字典上面的字母目录 (适用于大数据量)
2.树立索引的优缺陷
长处:查询速度快
缺陷:增修改慢,由于数据库要同步去保护索引文件,所以速度慢
3.索引有哪些
一般 主键 仅有 组合
4. 索引检索为什么快
索引结构:B+Tree
5.一般你们会在什么情况下加索引
1.主键主动树立仅有索引
2.频频作为查询条件的字段应该创立索引
3.查询中与其他表相关的字段,外键联系树立索引
4.单键/组合索引的挑选问题,组合索引的性价比更高
5.查询中排序的字段,排序字段若经过索引去拜访将大大提高排序速度
6.查询中计算或许分组字段。
7.过滤条件好的字段挑选一段挑选加索引
6.怎样知道索引证没用上
经过explain查询sql执行计划,主要看key运用的是哪个索引
7.用过组合索引吗,是有序的吗
用过, 有序
8.什么情况下会使索引失效?
1.like
2.like “%123%,前面不能+%
3.运用 关键字 in ,or ,null,!=
9. sql优化您们是怎样做的?
一.首要敞开数据库慢查询日志,定位到查询功率比较低的sql , 找出对应的sql句子并进行剖析
1.表规划是否标准,是否契合三范式的标准
(1)榜首范式:确保原子性(不行拆分)
(2)第二范式:每张表都有主键
(3)第三范式(每一列都有主键相关)
2.检查数据表中是否存在很多的冗余字段,字段数据类型是否合理
3.尽可能的运用varchar替代char 建表数据类型,能用数值的肯定不必字符存储
4.尽量防止null值,运用默认值替代空值,数值型可以运用0,字符型可以运用空字符串
二.检查sql句子是否标准
(1)防止运用关键字:or ,in,not in ,!=,<>,防止运用select *
(2)尽量防止子查询,大部分子查询都可以衔接查询
(3)用到or的当地可以运用union去替代完成
(4)用到in的当地可以运用exists去替代
三.剖析sql的索引是否可以用上
(1) explain查询sql的执行计划,要点重视的几个列便是,type是不是全表扫描
(2)看一下索引是否可以用的上,主要看key运用的是哪个索引
(3)看一下rows扫描行数是不是很大