譬如说:要寻找字段上的某一个值,先通过index进行查找,然后查询到一个物理编号,即可通过该编号来直接查询该记录,这样的查询速度会变快,从而避免全局搜索。
一般不推荐添加太多的索引,因为索引也是需要进行维护的,且太多的也是会降低查询的速度,一般推荐使用
primary key
orunique
约束的字段添加index来进行查询,这样其效率会快很多
create index index_name on table_name(column_name);
删除过程:
drop index index_name on table_name;
使用alter进行创建:(普通索引)
alter table table_name add index index_name (字段名);
创建主键索引:
alter table table_name add primary key (字段名);
创建唯一索引:
alter table table_name add unique index_name (字段名);
查看是否使用index:使用explain
关键字,后面接查询语句
create
不能创建primary key索引,而使用alter
可以创建多个
like
模糊查询索引是各种数据库中一种优化的重要手段
分类 | 释 |
---|---|
单一索引 | 单个字段上添加索引 |
复合索引 | 多个字段联合添加索引 |
唯一索引 | primary key字段上添加 |
主键索引 | unique字段上添加 |
唯一性比较弱的字段没有必要添加index,用处不大
站在不同的角度去看待同一份数据
创建视图:
create view view_name as 跟dql语句;
删除视图
drop view view_name;
对视图进行增,删,改,会导致原表的数据也会被更改
利用视图可以创建由多张表关联的视图对象
利用视图可以减化操作,可以减化开发的繁琐程度,使很长的一个SQL语句可以转化为视图对象从而对其进行操作,这样可以提高开发效率。
视图是存放在硬盘上,
增删改查:CRUD
第二范式:一般需要外键约束来实现多对多;多对多口诀:”多对多,三张表,关系表两个外键“
第三范式:同样也需要使用外键约束来解决;
一对多口诀:”一对多,两张表,多的表加外键“
一对一:可能因为数据过多,可能需要拆分为多张表,进行连接时,需要通过外键约束和unique约束来实现一一对应。
最终还是以客户的需求作为标准,三范式只是停留在理论上的,有时可能会存在冗余(空间)换速度(时间),因为表连接过多时,查询效率会降低。这样的话编写的sql语句就会变得简单,编写难度下降