选择创建索引的表
-- 查询当前用户下边的所有的表,
-- 表中的 able_name 字段表示当前用户下的所有的表名。
select * from user_tables;
选择要创建索引的表的列
-- 表user_tab_columns查询当前用户下所有表的所有字段
-- column_name表示表中的字段名
select * from user_tab_columns where table_name = 'table_name'
创建索引
-- index_name表示的是要创建的索引的名称
-- table_name表示要为哪一个表创建索引
-- column_name表示为此表中的哪一个字段进行创建索引
CREATE INDEX index_name ON table_name (column_name);
创建复合索引
-- index_name 表示索引名称
-- employees 表示表名
-- column_name1,column_name2 表示表中的字段名。
CREATE INDEX index_name ON table_name (column_name1, column_name2);
需要对数据库表字段创建索引的相关情况
字段的数值有唯一性的限制;
频繁作为 WHERE 查询条件的字段;
经常 GROUP BY 或 ORDER BY 的列;
UPDATE、DELETE 的 WHERE 条件列;
DISTINCT 字段需要创建索引;
多表 JOIN 连接操作时,创建索引注意事项:
使用类型小的列创建索引;
使用字符串前缀创建做引;
区分度高(散列性高)的列适合作为索引;
使用最频繁的列放到联合索引的左侧;
在多个字段都要创建索引的情况下,联合索引由于单值索引