Mysql 视图、索引

1、视图:
一、视图的定义:视图是物理表的映射结果,物理表变化,视图确定变化。sql

create view v_name as select 列名(也能够是函数计算出来的结果如 avg()) from 表;

二、视图的做用:
2.一、权限控制
好比某几列,容许用户查询,其它列不容许。
能够经过视图开放其中一列或者几列,起到权限控制的做用。
如商品表中的进货价格、进货商等重要信息,通常用户是不能看到的。
2.二、简化复杂的查询语句。数据库

三、视图可否更新、删除、添加?
若是view的每一行与物理表一一对应,则能够,视图变化物理表变化。
若是view的行是由物理表多行通过计算获得的结果,view不能够更新的。ide

2、delete与truncate的区别:函数

一、delete是DML的,只是删除表中的数据。性能

二、truncate是DDL的,先删除表,在建立表。code

举例:建立一个列自增加的表,操做一下就一目了然啦....索引

3、索引:内存

对于提升数据库性能,索引是个物美价廉的方式。不用加内存,不用改程序,不用调sql,只须要正确创建索引,就能够把查询速度提升百倍千倍。不过天下没有免费的午饭,创建索引提升了查询速度,但下降了增、删、改的速度。权限控制

一、索引是数据的目录,能快速定位行数据的位置。it

二、索引提升了查询速度,可是下降了增、删、改的速度(增删改时 索引表也要变动),所以并不是索引越多越好。

三、索引通常创建在查询频率高的列上加,而且加在重复度低的列上效果更好。

四、索引分类:

(1)、index|key 普通索引:提升查询速度。
A、建立表时指定:create table test(id int,key(id));
B、建立表后添加:alter table 表名 add index(id)或 create index index_name on tableName(列)

(2)、unique |unique key惟一索引:加快查询速度,而且约束数据不能重复。
A、建立表时指定:create table test(id int primary key,name varchar(30),email varchar(30) unique);
或者create table test(id int primary key,name varchar(30),email varchar(30),unique (email));
B、建立表后添加: alter table 表名 add unique(列)

(3)、primary key主键索引:加快查询速度,而且约束数据不能重复。

A、建立时指定:
create table test(id int primary key)

B、建立表后添加:
alter table 表名 add primary key(列)

(4)、fulltext全文索引:
主要是针对文字的检索,只对MyISAM引擎有效,在InnoDB上无效。而且在中文环境下几乎是无效的,要分词加索引才能够,通常用第三方解决方案,如compass。
(5)、主键索引和惟一索引的区别:
主键索引不能为空,不能重复;惟一索引能够为空,不能重复。
4、经常使用的语句:

一、show databases :显示全部数据库;

二、show create database 数据库名:显示建立数据库的语句。

三、show create table 表名:显示建立表的语句。

四、show index from 表名:显示表的索引。

五、show table status :当前库显示全部表的status;

六、show table status like 表名:当前库显示某张表的status;

七、select database():显示当前库名。

八、select user():显示当前用户。

九、explain sql语句:显示sql语句的执行情况。

十、添加/删除索引:alter table 表名 add [index|unique] 索引名(列名)drop table index 索引名 on 表名十一、添加/删除主键索引:alter table 表名 add primary key(列名)drop table primary key on 表名

相关文章
相关标签/搜索