索引的概念
数据库中的索引与书籍中的目录类似
- 在一本书中,无需阅读整本书,利用目录就可以快速查找所需信息
- 书中的目录是一个词语列表,其中注明了包含各个词的页码
数据库索引
- 在数据库中,索引使数据库程序对整个表进行扫描,以及物理标识这些值的数据页的逻辑指针清单
什么叫索引?
- 索引:快速的定位到你所需要的信息
优点:快速找到资源
缺点:占用空间,占用资源
索引有什么作用?
① 设置了合适的索引之后,数据利用各种快速的定位技术,能够大大加快查询速率
② 特别是当表很大时,或者查询涉及到多个表时,使用索引可使查询加快成千倍
③ 可以降低数据库的io成本,并且索引还可以降低数据库的排序成本
④ 通过创建唯一性索引保证数据表的唯一性
⑥ 可以加快表与表之间的连接
⑦ 在使用分组和排序时,可大大减少分组和排序时间
索引的分类1-1
① 普通索引
这是最基本的索引类型,而且他没有唯一性之类的限制
② 唯一性索引
这种索引和前面的“普通索引”基本相同,但有一个区别:索引例的所有值只能出现一次,即必须唯一
③ 主键
主键是一种唯一性索引,但他必须指定为“PRIMARY KEY”
索引的分类1-2
① 全文索引
mysql从3.23.23版开始支持全文索引和全文检索,在mysql中,全文索引的索引类型为FULLTEXT,全文索引可以在VARCHAR或者TEXT类型的列上创建
② 单列索引与多列索引
索引可以是单列上创建的索引,也可以是在多列上创建的索引
创建索引的原则依据1-1
① 表的主键,外键必须有索引
② 数据量超过300行的表应建立索引
③ 经常与其他表进行连接的表,在连接字段上应该建立索引
④ 唯一性太差的字段不适合建立索引
⑥ 更新太频繁的字段不合适创建索引
创建索引的原则依据1-2
① 经常出现在Where子句中的字段,特别是大表的字段,应该建立索引
② 索引应该建立在选择性高的字段上
③ 索引应该建立在小字段上,对于大的文本字段甚至超长字段,不要建索引
创建索引的方法
① 创建普通索引
查看表
删除索引
② 创建唯一性索引
查看表
删除索引
③ 创建主键索引
查看表
视图
视图的作用:可以根据不同的用户,创建不同的视图。根据权限查看不同的视图;加强安全性;方便sql操作
存储过程:软件开发方向
防止代码在网络传输过程中被截获,做了安全性保障
- 原始状态:代码中需要嵌入sql语句:通过连接驱动把sql语句作为参数,传递给mysql(数据库)进行执行。
- 存储过程是携爱子数据库这,并不是程序中。
- 程序是通过调用存储过程名称去出发操作。
- 优点:代码量少,传输安全,网络优化
1、创建表user
创插入字段并查看
2、在创建一个表
插入字段并查看
4、将hob表中的hob_name;移动到user表中的hobby中
例子
① 比如就想显示名字对应的兴趣爱好
select user.name,hob.hob_name from user inner join hob on user.hobby=hob.id;
② 给表名称起别名
select u.name,h.hob_name from user u inner join hob h on u.hobby=h.id;
③ 创建视图
create view view_user as select u.name,h.hob_name from user u inner join hob h on u.hobby
④创建组合索引
create index index_name_score on user (name,score);