前面介绍了MySQL索引基本概念和相关知识,相信大家对索引都有一定的了解和理解。java编程就理论知识而言,编程和操作是最重要的。这篇文章是为了学习MySQL索引应用操作,帮助大家使用MySQL索引。
1. 创建索引
语法结构:create index 索引名 on 表名(列名)
或
create unique index 索引名 on 表名(列名)
///添加unique表示在表中的列中添加一个独特的约束
例如:create index dept_dname_index on dept(dname);
2. 查看索引
语法结构:show index from 表名
例如:show index from dept;
3.使用索引
注意不要使用select * … 你可以看到type!=all,说明使用索引
explain select sal from emp where sal > 1500;
条件中的使用索引的sal
如下:
假如我们要找的话所有超过1500行的sal,然后可以扫描索引,在索引中排序,结果得到7行,我们知道不会有匹配的记录,可以退出。如果找到一个值,它不会出现在索引表的中间点之前,那么它也找到了第一个匹配索引项的定位算法,而无需扫描表的顺序(如二点搜索法)。这样可以快速定位第一个匹配值,节省大量搜索时间。数据库采用各种快速定位索引值的技术,通常属于DBA工作。
5. 删除索引
语法结构:drop index 索引名 on 表名;
例如:drop index dept_dname_index on dept;
6.主键自动添加索引:
(1)尽量通过主键查询,效率更高;
(2)索引与表相同,存储在硬盘文件中
(3)索引和表一样,是一个对象,表存储在硬盘文件中,所以索引也是表的一部分,索引也存储在硬盘文件中。
7.使用索引时,有以下几点4点技能及注意事项:
(1)索引不包括在内NULL值列:只要列中包含NULL值不会包含在索引中。只要复合索引中有一列含有NULL值,该列对该复合索引无效。因此,在设计数据库时,不要让字段的默认值为NULL。
(2)使用短索引:如果可能的话,应该指定一个前缀长度。例如,如果有一个CHAR(255)如果大部分值是前10个或20个字符中唯一的,则不要索引整个列。短索引不仅可以提高查询速度,还可以节省磁盘空间和I/O操作。
(3)索引列排序:MySQL查询只使用一个索引,所以如果索引已经在where句中使用,那么order By中的列不使用索引。因此,当数据库默认排序符合要求时,不要使用排序操作;尽量不要包含多列排序。如果需要,最好为这些列创建复合索引。
(4)like语句操作:一般情况下不鼓励使用like操作,如果必须使用,如何使用也是一个问题。like“%aaa%”likeeee不会使用索引“aaa%”可使用索引。
关于MySQL索引应用的介绍就是以上七点。希望java零基础看到这里的朋友也可以学会MySQL索引应用的操作。因为索引是快速搜索的关键,MySQL索引的建立为MySQL数据库能否高效运行非常重要,所以要求大家学好MySQL索引应用的相关操作,进一步掌握MySQL的使用,丰富自己的java水平。