mysql数据库中索引查看建立删除的sql语句
本文介绍如何用sql语句建立、查看、删除mysql表索引。
1.查看哪些表增加了索引sql语句
代码如下 | |
mysql> show index from tblname; |
比如执行“show index from v9_danji”这条sql语句,查看v9_danji这张表建立了哪些索引,会出来如下结果,可以看到索引的名称和索引的类型等。
查看表索引sql
2.给表某个字段添加索引sql语句
代码如下 | |
ALTER TABLE table_name ADD INDEX index_name (column_list) ALTER TABLE table_name ADD UNIQUE (column_list) ALTER TABLE table_name ADD PRIMARY KEY (column_list) |
这分别是用ALTER TABLE创建普通索引、UNIQUE索引或PRIMARY KEY索引。
也可以用如下sql语句:
CREATE INDEX可对表增加普通索引或UNIQUE索引。
代码如下 | |
CREATE INDEX index_name ON table_name (column_list) CREATE UNIQUE INDEX index_name ON table_name (column_list) |
3.删除表索引
代码如下 | |
DROP INDEX index_name ON talbe_name ALTER TABLE table_name DROP INDEX index_name ALTER TABLE table_name DROP PRIMARY KEY |
mysql数据库建立索引的好处和代价
说起提高数据库性能,索引是最物美价廉的东西了。不用加内存,不用改程序,不用调sql,只要执行个正确的’create index’,查询速度就可能提高百倍千倍,这可真有诱惑力。可是天下没有免费的午餐,查询速度的提高是以插入、更新、删除的速度为代价的,这些写操作,增加了大量的I/O。由于索引的存储结构不同于表的存储,一个表的索引所占空间比数据所占空间还大的情况经常发生。
这意味着我们在写数据库的时候做了很多额外的工作,而这个工作只是为了提高读的效率。因此,我们建立一个索引,必须保证这个索引不会“亏本”。
一般需要遵守这样的规则:
索引的字段必须是经常作为查询条件的字段;
如果索引多个字段,第一个字段要是经常作为查询条件的。如果只有第二个字段作为查询条件,这个索引不会起到作用;
索引的字段必须有足够的区分度;
Mysql 对于长字段支持前缀索引;