mysql_DML_索引、视图

创建索引的语法格式:
– 创建普通索引:
• create index 索引名称 on 表名(列)
• alter table 表名 add index 索引名称 (列)
– 创建唯一索引:
• create unique index 索引名称 on 表名(列名)
• alter table 表名 add unique index 索引名称 (列)
• 例子:
– 给students 表的 phone加上唯一索引
– Create unqiue index st_phone on students(phone);
– 给students表的name加上普通索引
– Create index st_name on students(name);
– 给订单表中的订单状态和用户id加上组合索引
– Create index status_user on orders(status,user_id);
删除索引
删除索引是指将表中已经存在的索引删除掉。一些不再
使用的索引会降低表的更新速度,影响数据库的性能。对于
这样的索引,应该将其删除。
对应已经存在的索引,可以通过DROP语句来删除索引
。基本形式如下:
DROP INDEX 索引名 ON 表名 ;
drop index complex_index on book;
索引设计原则
为了使索引的使用效率更高,在创建索引的时候必须考
虑在哪些字段上创建索引和创建什么类型的索引。本小节将
向读者介绍一些索引的设计原则。
1.选择惟一性索引
2.为经常需要排序、分组和联合操作的字段建立索引
3.为常作为查询条件的字段建立索引
4.限制索引的数目
5.尽量使用数据量少的索引
6.尽量使用前缀来索引
7.删除不再使用或者很少使用的索引

时间: 2024-10-08 10:38:12

mysql_DML_索引、视图的相关文章

触发器 索引视图 游标 事务

  触发器 create trigger tr_banj_insert on t_banj after insert as begin declare @log varchar(50) select @log='插入的记录:banj_mc=' +banj_mc+'banzr='+banzr from inserted --新数据 insert into t_log (biaomc,caoznr) values('t_banj',@log) end create trigger tr_banj_d

【Oracle】第三章索引视图序列

第三章索引视图序列 序列是用来生成唯一,连续的整数的数据库对象.序列是用来自动生成主键或唯一键的值. CREATE SEQUENCE  sequence_name START WITH  integer INCREMENT BY  integer MAXVALUE   integer|nomaxvalue MINVALUE    integer|nominvalue CYCLE|NOCYCLE CACHE  integer|nocache; START WITH     指要生成的第一个序列号,

hadoop Hive 的建表 和导入导出及索引视图

   1.hive 的导入导出 1.1 hive的常见数据导入方法 1.1.1 从本地系统中导入数据到hive表 1.创建student表 [ROW FORMAT DELIMITED]关键字,是用来设置创建的表在加载数据的时候,支持的列分隔符.[STORED AS file_format]关键字是用来设置加载数据的数据类型,默认是TEXTFILE,如果文件数据是纯文本,就是使用 [STORED AS TEXTFILE],然后从本地直接拷贝到HDFS上,hive直接可以识别数据. 2本地创建文件

SQLServer中使用索引视图(物化视图)

物化视图:以前用的普通的视图,普通视图就是一段逻辑语句,对性能没有任何的提升,也不能创建索引,而物化视图会把视图里查询出来的数据在数据库上建立快照,它和物理表一样,可以创建 索引,主键约束等等,性能会有质的提升,但是其有缺点,会占用,可以设置它定时自动更新一次,也可以手动更新,当然也是可以设置及时更新的,但是会拉慢基表的增删改查操作,在这里我只讲思路,具体的话大家可以自己去研究. + ? --创建物化视图,每天晚上22:00:00自动更新 create materialized view VM_

视图性能优化——索引视图

视图性能优化——索引视图http://blog.csdn.net/eriato/article/details/41039985 索引视图 索引视图有助于提高 T-SQL 的性能 Itzik Ben-Gan T-SQL 是一种允许您以逻辑方式设计请求的语言.这里所说的“逻辑”的意思是,当编写查询时,您指定的是希望获得什么 结果,而不是希望以何种方式 获得结果.对如何处理查询进行设计是查询优化器的工作.您所遇到的需要 T-SQL 解决方案的每个问题通常都有许多不同的解决方案,它们最终会返回同样的结

SQLServer中使用索引视图

在SQL Server中,视图是一个保存的T-SQL查询.视图定义由SQL Server保存,以便它能够用作一个虚拟表来简化查询,并给基表增加另一层安全.但是,它并不占用数据库的任何空间.实际上,在你查询它之前,视图并不做任何事情. 索引视图 在SQL Server 2000和2005中,你能够给视图增加索引.但是,如果视图只是一个保存在数据库中的查询定义,在运行前没有自己的数据,你如何给那个定义建立一个索引呢?嗯,这比较麻烦. 索引视图是一个已被物化或保存在数据库中的视图.当基本表更新时,给视

SQL Server索引视图以(物化视图)及索引视图与查询重写

经常听Oracle的同学说起来物化视图,物化视图的作用之一就是可以实现查询重写,听起来有一种高大上的感觉, SQL Server也有类似于Oracle物化视图的功能,只不过叫做索引视图. 说实话,还是物化视图听起来比较合适,与普通视图比,物化视图就是直接将数据存储起来了 SQL Server中的索引视图也具有查询重写的功能, 所谓的查询重写,就是如果符合条件的数据在索引视图上,并且查询列都包含在在索引视图上,此时可以直接通过查询索引视图来替代基于原始表的查询 依旧惯例,先上代码做一个测试环境 -

物化视图,索引视图,函数索引,创建索引时使用DESC

老板交给的一个任务,搜了一下资料,觉得还是总结一下比较好.假如以后用到了呢?围绕两个主题:一是视图上能够建索引,二是在创建索引时是否可以使用DESC关键字. 一.能否在视图上创建索引 因为普通的视图并没有存储实际的信息,它所操作的数据来自于基本表,所以在普通视图上不可以创建索引. 在oracle中执行如下的语句,会报"视图不适用于此处"的错误 create view test_car as select license from cars; create index index_vew

索引 视图 游标

索引: 不用扫描整个表就实现对数据快速访问的途径. 二进制类型不支持索引 视图: 从一个或多个基本表中导出所显示的表,是没有数据的虚表. 多表出一视图,一表出多视图,多表与一视图出一视图 游标: 所有数据库:行的次序无关,列的次序无关 select Code,Name,Brand_Name,Prod_Name,oil,Price from car join Brand on Car.Brand = Brand.Brand_Code join Productor on Productor.Prod

创建索引视图

CREATE VIEW UserInfoView WITH SCHEMABINDING AS SELECT Email,User_ID from dbo.User_Info GO --以邮箱创建一个唯一聚集索引 CREATE UNIQUE CLUSTERED INDEX ix_UserInfo_Email ON UserInfoView (Email); GO 注意:创建索引视图要点: 1: CREATE VIEW memberView后面要跟上WITH SCHEMABINDING 理由:• 使