MySQL
4.视图和索引
视图
视图上不能建立索引,不可以关联触发器
查找表结构或者视图定义的字段信息用DESC或者DESCRIBE关键字,同样还可以使用show create table/view
直接操作基本表比视图更新效率高
视图更新不允许条件
![](https://img-blog.csdnimg.cn/img_convert/fc31cf74ea14f527c03d309f4ad21e50.jpeg)
索引
条件:适合:该列在WHERE子句后出现;该列频繁更新;该列值域范围;该列有排序、分组
不适合:1. 在 WHERE 中使用不到的字段,不要设置索引;
2. 数据量小的表最好不要使用索引;
3. 有大量重复数据的列上不要建立索引;
4. 避免对经常更新的表创建过多的索引;
5. 不建议用无序的值作为索引;
6. 删除不再使用或者很少使用的索引;
7. 不要定义冗余或重复的索引
索引类型 | 创建表时创建索引(列名就是字段名) | 修改表结构时创建 ALTER TABLE 表名 ADD…… | 已有表创建 CREATE ……INDEX 索引名 ON…… |
主键(不重复,无NULL) | 字段名+字段类型+PRIMARY KEY | PRIMARY KEY(列名) | |
普通 | INDEX 索引名(列名) | INDEX 索引名(列名) | 表名(列名) |
唯一(不重复,有NULL) | UNIQUE 索引名(列名) | UNIQUE 索引名(列名) | UNIQUE INDEX 索引名 ON表名(列名) |
全文 | FULLTEXT 索引名(列名) | FULLTEXT 索引名(列名) | FULLTEXT INDEX 索引名 ON表名(列名)[WITH PARSER ngram] |
多列(组合) | KEY 索引名(列名1,列名2,……) | KEY 索引名(列名1,列名2,……) | 表名(列名1,列名2,……) |
删除索引 DROP INDEX 索引名 ON 表名 || ALTER TABLE 表名 DROP INDEX 索引名