Mysql进阶实战总结

来源:互联网 发布:淘宝直播个人中心 编辑:程序博客网 时间:2024/06/14 06:15

Mysql进阶实战总结


学习Mysql更多强大的功能,使用并了解其原理和使用方法。下面是我对Mysql使用的一些知识点总结。


Mysql视图:
理解:视图即为一张虚拟表,与普通的Mysql表相比较它是不真实存储数据的,那么它作为一张表的作用是什么呢?即是当我们使用大量的复杂sql的时候(比如内联、外联等)想去获得一个比较全面的数据时,我们将复杂SQL语句整理成一个对应的虚拟表,这样我们最后只需要查询虚拟表带上where条件则可以查询自己想要的结果了。
举例:假设有A表   B表  C表,他们存储了自己响应的数据。当我们需要同时返回其中的某个字段值时,我们通常做法:
select * from ((A a inner join B b on a.id=b.id)  inner join C c on b.id=c.id) where a.id='1'
这时我们可以把除where条件以外的sql语句包装成一个虚拟表--D,这样我们可以使用 select * from D where id='1' 去达到相同效果。

视图的创建与使用:
语法:create or replace view 视图名(虚拟表名)as select ....
使用:select * from 视图名 where ....
视图的本质:视图就是一张虚拟表,不存在存储数据,每次都是查询从普通表中获得数据进行组合。



Mysql索引:(重点)
索引分为:单列索引、复合索引、唯一索引、主键索引等。

单列索引:即是最基本的索引,没有任何限制。

注:当表被创建时,主键的定义字段会自动创建索引,这是一种特殊索引---丛生索引。其中Seq_in_index表示索引字段的顺序。(show index from tablename可以查看表中的索引信息)

复合索引:复合索引是在多个字段上创建的索引。遵守“最左前缀”原则,即在查询条件中使用了复合索引的第一个字段,索引才会生效。因此在使用复合索引时----复合索引中索引顺序极其重要。

注:复合索引的重点就是使用索引生效的首要条件就是在where条件里面必须包含复合索引中的第一个字段,否则复合索引不起作用。


唯一索引:唯一索引必须创建关键字“UNIQUE”,唯一索引限制列的值必须唯一,但允许有空值。对于多个字段,要求组合值必须唯一。

主键索引:也称为---丛生索引,是一种特殊的唯一索引,不允许有空值。(一般建表时指定主键后,会自动创建)

索引的使用:

1.where 条件中的字段适合作为索引;
2.尽量不要将一些只包含“是/否”的字段作为索引,不管如何都是五五开;
3.不要过度使用索引,每次增删改会维护表的索引;
4.在InnonDB引擎中,记录默认会按照一定顺序存储,如果已经定义主键,则按照主键顺序存储。由于普通索引会保存主键键值,故主键应尽可能选择较短的数据类型,减少存储空间。





















1 0