六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

為數據庫創建索引(一)

[摘要]就象許多的PHP開發者一樣,在剛開始建立動態網站的時候,我都是使用相對簡單的數據結構。PHP在連接數據庫方面的確實是十分方便(譯者注:有些人認為PHP在連接不同數據庫時沒有一個統一的接口,不太方便,...
就象許多的PHP開發者一樣,在剛開始建立動態網站的時候,我都是使用相對簡單的數據結構。PHP在連接數據庫方面的確實是十分方便(譯者注:有些人認為PHP在連接不同數據庫時沒有一個統一的接口,不太方便,其實這可以通過一些擴展庫來做到這一點),你無需看大量的設計文檔就可以建立和使用數據庫,這也是PHP獲得成功的主要原因之一。

  前些時候,一位頗高級的程序員居然問我什么叫做索引,令我感到十分的驚奇,我想這絕不會是滄海一粟,因為有成千上萬的開發者(可能大部分是使用MySQL的)都沒有受過有關數據庫的正規培訓,盡管他們都為客戶做過一些開發,但卻對如何為數據庫建立適當的索引所知較少,因此我起了寫一篇相關文章的念頭。

  最普通的情況,是為出現在where子句的字段建一個索引。為方便講述,我們先建立一個如下的表。

  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 (category_id,user_id);

  注意到我在命名時的習慣了嗎?我使用"表名_字段1名_字段2名"的方式。你很快就會知道我為什么這樣做了。

  現在你已經為適當的字段建立了索引,不過,還是有點不放心吧,你可能會問,數據庫會真正用到這些索引嗎?測試一下就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

以上是postgres的數據,可以看到該數據庫在查詢的時候使用了一個索引(一個好開始),而且它使用的是我創建的第二個索引。看到我上面命名的好處了吧,你馬上知道它使用適當的索引了。


主站蜘蛛池模板: 青春草国产视频 | 手机在线看片国产 | 午夜视频在线观看完整高清在线 | 一级做a爰片久久毛片看看 一级做a爰片久久毛片16 | 三级黄色片免费 | 日韩香蕉视频 | 青草国产在线观看 | 青草青草视频2免费观看 | 亚洲狠狠婷婷综合久久久久图片 | 亚洲免费天堂 | 亚洲国产中文字幕 | 一区二区在线视频观看 | 色天使在线观看 | 亚洲精品视频免费观看 | 亚洲免费影院 | 天天干天天碰 | 日本黄色网址免费 | 青青国产在线播放 | 青青动漫| 欧美最猛性xxxxx(亚洲精品) | 青草青视频在线观看 | 天天做天天爱天天一爽一毛片 | 亚洲爱爱网站 | 午夜爱爱毛片xxxx视频免费看 | 日韩高清不卡在线 | 中文字幕亚洲一区二区v@在线 | 亚洲国产精品日韩专区avtube | 日日操狠狠干 | 天天干妹子 | 西欧毛片 | 日本在线观看视频 | 亚洲第一页综合 | 亚洲日韩精品欧美一区二区 | 在线 色 | 日本大片免a费观看在线 | 三级欧美在线 | 日本ⅹ18| 日本激情一区二区三区 | 日本三区四区免费高清不卡 | 手机看片日韩日韩国产在线看 | 日本v片免费一区二区三区 日本vs欧美一区二区三区 |