WIKI使用導(dǎo)航
站長(zhǎng)百科導(dǎo)航
站長(zhǎng)專(zhuān)題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢(qián)
- 虛擬主機(jī)
- cPanel
- 網(wǎng)址導(dǎo)航專(zhuān)題
- 云計(jì)算
- 微博營(yíng)銷(xiāo)
- 虛擬主機(jī)管理系統(tǒng)
- 開(kāi)放平臺(tái)
- WIKI程序與應(yīng)用
- 美國(guó)十大主機(jī)
Sphinx/SQL 數(shù)據(jù)源
對(duì)于所有的基于SQL驅(qū)動(dòng),建立索引的過(guò)程如下:
- 連接到數(shù)據(jù)庫(kù);
- 執(zhí)行預(yù)查詢,以便完成所有必須的初始設(shè)置,比如為MySQL連接設(shè)置編碼;
- 執(zhí)行主查詢,其返回的的數(shù)據(jù)將被索引;
- 執(zhí)行后查詢,以便完成所有必須的清理工作;
- 關(guān)閉到數(shù)據(jù)庫(kù)的連接;
- 對(duì)短語(yǔ)進(jìn)行排序 (或者學(xué)究一點(diǎn), 索引類(lèi)型相關(guān)的后處理;
- 再次建立到數(shù)據(jù)庫(kù)的連接;
- 執(zhí)行后索引查詢,以便完成所有最終的清理善后工作;
- 再次關(guān)閉到數(shù)據(jù)庫(kù)的連接。
大多數(shù)參數(shù)是很直觀的,例如數(shù)據(jù)庫(kù)的用戶名、主機(jī)、密碼。不過(guò),還有一些細(xì)節(jié)上的問(wèn)題需要討論。
區(qū)段查詢
索引系統(tǒng)需要通過(guò)主查詢來(lái)獲取全部的文檔信息,一種簡(jiǎn)單的實(shí)現(xiàn)是將整個(gè)表的數(shù)據(jù)讀入內(nèi)存,但是這可能導(dǎo)致整個(gè)表被鎖定并使得其他操作被阻止(例如:在MyISAM格式上的INSERT操作),同時(shí),將浪費(fèi)大量?jī)?nèi)存用于存儲(chǔ)查詢結(jié)果,諸如此類(lèi)的問(wèn)題吧。為了避免出現(xiàn)這種情況,Sphinx支持一種被稱為區(qū)段查詢的技術(shù). 首先,Sphinx從數(shù)據(jù)庫(kù)中取出文檔ID的最小值和最大值,將由最大值和最小值定義自然數(shù)區(qū)間分成若干份,一次獲取數(shù)據(jù),建立索引。 后查詢(sql_post) vs. 索引后查詢(sql_post_index)
后查詢和索引后查詢的區(qū)別在于,當(dāng)Sphinx獲取到全部文檔數(shù)據(jù)后,立即執(zhí)行后查詢,但是構(gòu)建索引的過(guò)程仍然may因?yàn)槟撤N原因失敗。在另一方面,當(dāng)索引后查詢被執(zhí)行時(shí),可以理所當(dāng)然的認(rèn)為索引已經(jīng)成功構(gòu)造完了。因?yàn)闃?gòu)造索引可能是個(gè)漫長(zhǎng)的過(guò)程,因此對(duì)與數(shù)據(jù)庫(kù)的連接在執(zhí)行后索引操作后被關(guān)閉,在執(zhí)行索引后操作前被再次打開(kāi)。