當前位置:首頁 » 網站資訊 » 網站建設如何應對索引量大減
擴展閱讀
網路安全大會認證 2025-10-05 03:51:22
房車電視可以連接網路嗎 2025-10-05 03:51:21
哪個網站買內衣好 2025-10-05 03:51:21

網站建設如何應對索引量大減

發布時間: 2022-12-09 11:22:40

㈠ 新站前期應該怎樣優化新站的索引量低怎麼

新站前期應該怎樣優化:

  1. 拿到一個新站,要從下面著手:

    優化網站結構

    a.重要的頁面都在首頁放個入口,尤其是經常更新的頁面,可以調到首頁。

    b.首頁右邊或者右邊吧頂級導航欄目核心關鍵調下來。

    c.頭部放置網站地圖吸引蜘蛛。

    d.列表頁左邊或者右邊調用頂級導航欄目的關鍵詞。

    e.文章頁面左邊或者右邊調用該欄目下文章,可以按照發布先後順序調用;也可以直接調用頂級導航欄目;文章下面添加「推薦文章」、「熱門文章」等吸引蜘蛛。

    f.做好網站地圖,可以用SitemapX軟體製作好後提交到網站根目錄

    代碼優化:robots文件、CSS和JS代碼優化、URL絕對化、首選域設置、301重定向、404頁面製作、用Xenu處理死鏈接

    內容優化:新站在考察期間盡量多做原創,多保持有規律地更新

    備註:網站優化基本上可以分為上面三大部分:結構優化、代碼優化和內容優化,流程圖供參考:

2.新站索引量低怎麼辦:

a.網路對新站有3~6個月的考核期,這個期間要保持網站內容原創有規律地更新,最好別亂改網站。

b.現在網路新的演算法要求,新站可以不用做外鏈,做好內部優化即可,內部優化上來後再做外鏈

c.新站索引量低甚至沒有索引量,不要擔心,只要按照上面的方法做好內容,過了考核期後索引量就上來了,在考核期間要給網路好印象。

㈡ 索引如何處理數據量大的問題

一、什麼是索引?

索引用來快速地尋找那些具有特定值的記錄,所有MySQL索引都以B-樹的形式保存。如果沒有索引,執行查詢時MySQL必須從第一個記錄開始掃描整個表的所有記錄,直至找到符合要求的記錄。表裡面的記錄數量越多,這個操作的代價就越高。如果作為搜索條件的列上已經創建了索引,MySQL無需掃描任何記錄即可迅速得到目標記錄所在的位置。如果表有1000個記錄,通過索引查找記錄至少要比順序掃描記錄快100倍。

假設我們創建了一個名為people的表:

CREATE TABLE people ( peopleid SMALLINT NOT NULL, name CHAR(50) NOT NULL );

然後,我們完全隨機把1000個不同name值插入到people表。下圖顯示了people表所在數據文件的一小部分:

可以看到,在數據文件中name列沒有任何明確的次序。如果我們創建了name列的索引,MySQL將在索引中排序name列:

對於索引中的每一項,MySQL在內部為它保存一個數據文件中實際記錄所在位置的「指針」。因此,如果我們要查找name等於「Mike」記錄的peopleid(SQL命令為「SELECT peopleid FROM people WHERE name=\'Mike\';」),MySQL能夠在name的索引中查找「Mike」值,然後直接轉到數據文件中相應的行,准確地返回該行的peopleid(999)。在這個過程中,MySQL只需處理一個行就可以返回結果。如果沒有「name」列的索引,MySQL要掃描數據文件中的所有記錄,即1000個記錄!顯然,需要MySQL處理的記錄數量越少,則它完成任務的速度就越快。

二、索引的類型

MySQL提供多種索引類型供選擇:

普通索引

這是最基本的索引類型,而且它沒有唯一性之類的限制。普通索引可以通過以下幾種方式創建:

創建索引,例如CREATE INDEX <索引的名字> ON tablename (列的列表);
修改表,例如ALTER TABLE tablename ADD INDEX [索引的名字] (列的列表);
創建表的時候指定索引,例如CREATE TABLE tablename ( [...], INDEX [索引的名字] (列的列表) );

唯一性索引

這種索引和前面的「普通索引」基本相同,但有一個區別:索引列的所有值都只能出現一次,即必須唯一。唯一性索引可以用以下幾種方式創建:

創建索引,例如CREATE UNIQUE INDEX <索引的名字> ON tablename (列的列表);
修改表,例如ALTER TABLE tablename ADD UNIQUE [索引的名字] (列的列表);
創建表的時候指定索引,例如CREATE TABLE tablename ( [...], UNIQUE [索引的名字] (列的列表) );

主鍵

主鍵是一種唯一性索引,但它必須指定為「PRIMARY KEY」。如果你曾經用過AUTO_INCREMENT類型的列,你可能已經熟悉主鍵之類的概念了。主鍵一般在創建表的時候指定,例如「CREATE TABLE tablename ( [...], PRIMARY KEY (列的列表) ); 」。但是,我們也可以通過修改表的方式加入主鍵,例如「ALTER TABLE tablename ADD PRIMARY KEY (列的列表); 」。每個表只能有一個主鍵。

全文索引

MySQL從3.23.23版開始支持全文索引和全文檢索。在MySQL中,全文索引的索引類型為FULLTEXT。全文索引可以在VARCHAR或者TEXT類型的列上創建。它可以通過CREATE TABLE命令創建,也可以通過ALTER TABLE或CREATE INDEX命令創建。對於大規模的數據集,通過ALTER TABLE(或者CREATE INDEX)命令創建全文索引要比把記錄插入帶有全文索引的空表更快。本文下面的討論不再涉及全文索引,要了解更多信息,請參見MySQL documentation。

三、單列索引與多列索引

索引可以是單列索引,也可以是多列索引。下面我們通過具體的例子來說明這兩種索引的區別。假設有這樣一個people表:

ALTER TABLE people ADD INDEX fname_lname_age (firstname,lastname,age);

由於索引文件以B-樹格式保存,MySQL能夠立即轉到合適的firstname,然後再轉到合適的lastname,最後轉到合適的age。在沒有掃描數據文件任何一個記錄的情況下,MySQL就正確地找出了搜索的目標記錄!

那麼,如果在firstname、lastname、age這三個列上分別創建單列索引,效果是否和創建一個firstname、lastname、age的多列索引一樣呢?答案是否定的,兩者完全不同。當我們執行查詢的時候,MySQL只能使用一個索引。如果你有三個單列的索引,MySQL會試圖選擇一個限制最嚴格的索引。但是,即使是限制最嚴格的單列索引,它的限制能力也肯定遠遠低於firstname、lastname、age這三個列上的多列索引。

四、最左前綴

多列索引還有另外一個優點,它通過稱為最左前綴(Leftmost Prefixing)的概念體現出來。繼續考慮前面的例子,現在我們有一個firstname、lastname、age列上的多列索引,我們稱這個索引為fname_lname_age。當搜索條件是以下各種列的組合時,MySQL將使用fname_lname_age索引:

firstname,lastname,age
firstname,lastname
firstname
從另一方面理解,它相當於我們創建了(firstname,lastname,age)、(firstname,lastname)以及(firstname)這些列組合上的索引。下面這些查詢都能夠使用這個fname_lname_age索引:

table type possible_keys key key_len ref rows Extra people ref fname_lname_age fname_lname_age 102 const,const,const 1 Where used
下面我們就來看看這個EXPLAIN分析結果的含義。

table:這是表的名字。

type:連接操作的類型。下面是MySQL文檔關於ref連接類型的說明:

「對於每一種與另一個表中記錄的組合,MySQL將從當前的表讀取所有帶有匹配索引值的記錄。如果連接操作只使用鍵的最左前綴,或者如果鍵不是UNIQUE或PRIMARY KEY類型(換句話說,如果連接操作不能根據鍵值選擇出唯一行),則MySQL使用ref連接類型。如果連接操作所用的鍵只匹配少量的記錄,則ref是一種好的連接類型。」

在本例中,由於索引不是UNIQUE類型,ref是我們能夠得到的最好連接類型。

如果EXPLAIN顯示連接類型是「ALL」,而且你並不想從表裡面選擇出大多數記錄,那麼MySQL的操作效率將非常低,因為它要掃描整個表。你可以加入更多的索引來解決這個問題。預知更多信息,請參見MySQL的手冊說明。

possible_keys:

可能可以利用的索引的名字。這里的索引名字是創建索引時指定的索引昵稱;如果索引沒有昵稱,則默認顯示的是索引中第一個列的名字(在本例中,它是「firstname」)。默認索引名字的含義往往不是很明顯。

Key:

它顯示了MySQL實際使用的索引的名字。如果它為空(或NULL),則MySQL不使用索引。

key_len:

索引中被使用部分的長度,以位元組計。在本例中,key_len是102,其中firstname佔50位元組,lastname佔50位元組,age佔2位元組。如果MySQL只使用索引中的firstname部分,則key_len將是50。

ref:

它顯示的是列的名字(或單詞「const」),MySQL將根據這些列來選擇行。在本例中,MySQL根據三個常量選擇行。

rows:

MySQL所認為的它在找到正確的結果之前必須掃描的記錄數。顯然,這里最理想的數字就是1。

Extra:

這里可能出現許多不同的選項,其中大多數將對查詢產生負面影響。在本例中,MySQL只是提醒我們它將用WHERE子句限制搜索結果集。

七、索引的缺點

到目前為止,我們討論的都是索引的優點。事實上,索引也是有缺點的。

首先,索引要佔用磁碟空間。通常情況下,這個問題不是很突出。但是,如果你創建每一種可能列組合的索引,索引文件體積的增長速度將遠遠超過數據文件。如果你有一個很大的表,索引文件的大小可能達到操作系統允許的最大文件限制。

第二,對於需要寫入數據的操作,比如DELETE、UPDATE以及INSERT操作,索引會降低它們的速度。這是因為MySQL不僅要把改動數據寫入數據文件,而且它還要把這些改動寫入索引文件。

【結束語】

在大型資料庫中,索引是提高速度的一個關鍵因素。不管表的結構是多麼簡單,一次500000行的表掃描操作無論如何不會快。如果你的網站上也有這種大規模的表,那麼你確實應該花些時間去分析可以採用哪些索引,並考慮是否可以改寫查詢以優化應用。要了解更多信息,請參見MySQL manual。另外注意,本文假定你所使用的MySQL是3.23版,部分查詢不能在3.22版MySQL上執行。

㈢ 網站優化中怎麼快速提升收錄量和索引量

一、網站基礎優化
搜索引擎收錄頁面,不要求網站設計有多漂亮或者華麗,但是一定要整潔,也就是網站內容的排版必須要整齊和潔凈,這與用戶體驗以及伺服器的穩定性之間是有很大關聯的。
企業網站優化過程中,想要增加網站的收錄和索引,一定要注重網站的基礎優化,其中包括了伺服器、域名、網頁設計排版、代碼優化、URL路徑優化、robots協議優化、站內頁面重復讀、內鏈優化等等各個方面。
二、高質量軟文
一般來說,要求內容最好原創,並且具有參考價值,搜索引擎的目的不是單純地為了吸引用戶,准確地說是為用戶提供有價值內容,解疑答惑,所以要做好網站自身的內容,高質量內容更容易被搜索引擎抓取識別度與並且有效提高用戶體驗度.
三、內容排版
排版設計,顏色字體大小等設計能夠引導用戶去注意到一些關鍵有用的信息,也就是怎麼去吸引眼球。
四、內鏈
頁面與頁面之間相互投票
五、保持更新規律
有規律的內容更新能夠提高網站與蜘蛛之間的友好度,也是網頁被快速抓取的重要保證。