暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
为mysql数据库建立索引.docx
34
7页
2次
2025-04-18
免费下载
mysql
数据库建立索引
祥龙之子
前些时候,一位颇高级的程序员居然问我什么叫做索引,令我感到十
分的惊奇,我想这绝不会是沧海一粟,因为有成千上万的开发者(可
能大部分是使用
MySQL
的)都没有受过有关数据库的正规培训,尽
管他们都为客户做过一些开发,但却对如何为数据库建立适当的索引
所知较少,因此我起了写一篇相关文章的念头。
最普通的情况,是为出现在
where
子句的字段建一个索引。为方便
讲述,我们先建立一个如下的表。
Code
代码如下
:
CREATE TABLE mytable (
 
id serial primary key,
 
category_id int not null default 0,
 
user_id int not null default 0,
 
adddate int not null default 0
);
很简单吧,不过对于要说明这个问题,已经足够了。如果你在查询时
常用类似以下的语句:
SELECT * FROM mytable WHERE category_id=1;
最直接的应对之道,是为
category_id
建立一个简单的索引:
CREATE INDEX mytable_categoryid
 
ON mytable (category_id);
OK
,搞定?先别高兴,如果你有不止一个选择条件呢?例如:
SELECT * FROM mytable WHERE category_id=1 AND user
_id=2;
你的第一反应可能是,再给
user_id
建立一个索引。不好,这不是一
个最佳的方法。你可以建立多重的索引。
CREATE INDEX mytable_categoryid_userid ON mytable (ca
tegory_id,user_id);
注意到我在命名时的习惯了吗?我使用
"
表名
_
字段
1
_
字段
2
"
方式。你很快就会知道我为什么这样做了。
现在你已经为适当的字段建立了索引,不过,还是有点不放心吧,你
可能会问,数据库会真正用到这些索引吗?测试一下就
OK
,对于大
多数的数据库来说,这是很容易的,只要使用
EXPLAIN
命令:
of 7
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜