关于索引

来源:互联网 发布:古筝模拟软件 编辑:程序博客网 时间:2024/05/29 17:43

看到用xml的配置来建立Mysql的索引,表示第一次见到,不懂。So ,mark and write down。

参考一些前辈的资料:为mysql数据库建立索引


1、索引---- 最普通的情况,是为出现在where子句的字段建一个索引。

如:SELECT * FROM mytable WHERE category_id=1; 

  最直接的应对之道,是为category_id建立一个简单的索引:

CREATE INDEX mytable_categoryid 
 ON mytable (category_id);

如果你有不止一个选择条件呢?例如:

SELECT * FROM mytable WHERE category_id=1 AND user_id=2;

  你的第一反应可能是,再给user_id建立一个索引。不好,这不是一个最佳的方法。你可以建立多重的索引。

CREATE INDEX mytable_categoryid_userid ON mytable (category_id,user_id);


你可能会问,数据库会真正用到这些索引吗?测试一下就OK,对于大多数的数据库来说,这是很容易的,只要使用EXPLAIN命令:

EXPLAIN

 SELECT * FROM mytable 
  WHERE category_id=1 AND user_id=2;

This is what Postgres 7.1 returns (exactly as I expected) 

 NOTICE: QUERY PLAN:

Index Scan using mytable_categoryid_userid on 
  mytable (cost=0.00..2.02 rows=1 width=16)

EXPLAIN

2.索引需要更新,会降低插入和更新的效率

3.索引的效率不一定是最高的


4.查询索引

SHOW INDEX FROM table_name;

5.删除索引

drop index index_name on table_name ;

alter table table_name drop index index_name ;

alter table table_name drop primary key ;

其中,在前面的两条语句中,都删除了table_name中的索引index_name。而在最后一条语句中,只在删除PRIMARY KEY索引中使用,因为一个表只可能有一个PRIMARY KEY索引,因此不需要指定索引名。

mark一篇文要复习:使用Solr索引MySQL数据

0 0
原创粉丝点击