最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL索引的原理與性能優(yōu)化設(shè)計(jì)教程(圖文代碼)

 更新時(shí)間:2026年01月17日 08:43:59   作者:中環(huán)留念  
本文詳細(xì)介紹了索引的分類、功能和實(shí)現(xiàn)方式,包括主鍵索引、唯一索引、常規(guī)索引、全文索引以及聚簇索引和非聚簇索引,文章還探討了索引設(shè)計(jì)的最佳實(shí)踐,包括主鍵選擇、索引覆蓋等優(yōu)化策略,為數(shù)據(jù)庫(kù)性能優(yōu)化提供了理論基礎(chǔ)

一、前言

索引是一種用于快速查詢和檢索數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),其本質(zhì)可以看成是一種排序好的數(shù)據(jù)結(jié)構(gòu)。

索引的作用就相當(dāng)于書的目錄。打個(gè)比方:我們?cè)诓樽值涞臅r(shí)候,如果沒(méi)有目錄,那我們就只能一頁(yè)一頁(yè)地去找我們需要查的那個(gè)字,速度很慢;如果有目錄了,我們只需要先去目錄里查找字的位置,然后直接翻到那一頁(yè)就行了。

索引底層數(shù)據(jù)結(jié)構(gòu)存在很多種類型,常見(jiàn)的索引結(jié)構(gòu)有:B 樹、 B+ 樹 和 Hash、紅黑樹。在 MySQL 中,無(wú)論是 Innodb 還是 MyISAM,都使用了 B+ 樹作為索引結(jié)構(gòu)。

二、索引類型劃分

按照數(shù)據(jù)結(jié)構(gòu)維度劃分:

  • BTree 索引:MySQL 里默認(rèn)和最常用的索引類型。只有葉子節(jié)點(diǎn)存儲(chǔ) value,非葉子節(jié)點(diǎn)只有指針和 key。存儲(chǔ)引擎 MyISAM 和 InnoDB 實(shí)現(xiàn) BTree 索引都是使用 B+Tree,但二者實(shí)現(xiàn)方式不一樣(前面已經(jīng)介紹了)。

  • 哈希索引:類似鍵值對(duì)的形式,一次即可定位。

  • RTree 索引:一般不會(huì)使用,僅支持 geometry 數(shù)據(jù)類型,優(yōu)勢(shì)在于范圍查找,效率較低,通常使用搜索引擎如 ElasticSearch 代替。

  • 全文索引:對(duì)文本的內(nèi)容進(jìn)行分詞,進(jìn)行搜索。目前只有 CHAR、VARCHAR、TEXT 列上可以創(chuàng)建全文索引。一般不會(huì)使用,效率較低,通常使用搜索引擎如 ElasticSearch 代替。

按數(shù)據(jù)結(jié)構(gòu)維度劃分的索引類型本文不做詳細(xì)介紹,本文主要針對(duì)以下兩種分類做闡述

按“功能/約束”分類:主鍵索引、唯一索引、常規(guī)索引、全文索引

分類含義特點(diǎn)關(guān)鍵字
主鍵索引針對(duì)于表中主鍵創(chuàng)建的索引默認(rèn)自動(dòng)創(chuàng)建, 只能有一個(gè)PRIMARY
唯一索引避免同一個(gè)表中某數(shù)據(jù)列中的值重復(fù)可以有多個(gè)UNIQUE
常規(guī)索引快速定位特定數(shù)據(jù)可以有多個(gè)
全文索引全文索引查找的是文本中的關(guān)鍵詞,而不是比較索引中的值可以有多個(gè)FULLTEXT

按“存儲(chǔ)形式/數(shù)據(jù)組織方式”分類:聚集索引(Clustered)、二級(jí)索引(Secondary)

分類含義特點(diǎn)
聚集索引(Clustered Index)將數(shù)據(jù)存儲(chǔ)與索引放到了一塊,索引結(jié)構(gòu)的葉子節(jié)點(diǎn)保存了行數(shù)據(jù)必須有,而且只有一個(gè)
二級(jí)索引(Secondary Index)將數(shù)據(jù)與索引分開(kāi)存儲(chǔ),索引結(jié)構(gòu)的葉子節(jié)點(diǎn)關(guān)聯(lián)的是對(duì)應(yīng)的主鍵可以存在多個(gè)

三、按功能/約束分類

1.主鍵索引(PRIMARY KEY)

定義

  • 表的“主鍵”對(duì)應(yīng)的索引,MySQL 用它來(lái)唯一標(biāo)識(shí)一行數(shù)據(jù)。

  • 一張表 只能有一個(gè)主鍵,主鍵列 不能為 NULL,并且 必須唯一。

InnoDB 特點(diǎn)

  • InnoDB 中 主鍵索引 = 聚集索引(后面會(huì)解釋聚集索引是什么)。

  • 也就是說(shuō):數(shù)據(jù)行本身就“存”在主鍵索引的 B+Tree 葉子節(jié)點(diǎn)里。

適用場(chǎng)景

  • 絕大多數(shù)表都應(yīng)該設(shè)計(jì)主鍵:自增 id、雪花 id、UUID(不推薦隨機(jī) UUID 做主鍵,容易導(dǎo)致頁(yè)分裂/碎片)。

  • 必須為表指定主鍵(如無(wú)顯式定義,InnoDB 會(huì)自動(dòng)生成隱藏主鍵)。

  • 常用于 WHERE user_id = 1001 或聯(lián)表查詢。

CREATE TABLE users (
  id INT PRIMARY KEY,  -- 主鍵索引
  username VARCHAR(50)
);

2.唯一索引(UNIQUE)

定義

  • 約束某列/多列的值必須唯一。

  • 限制列值 不能重復(fù)(但大多數(shù)情況下允許 NULL,且多個(gè) NULL 在 MySQL/InnoDB 中通常是允許的)。

  • 一張表可以有多個(gè)唯一索引。

底層實(shí)現(xiàn)

  • InnoDB 下通常也是 B+Tree。

  • 與普通索引的核心差別:寫入時(shí)會(huì)做 唯一性校驗(yàn)。

典型用途

  • 既是“約束”(保證不重復(fù)),也是“加速器”(加速查詢)

  • 常用于:手機(jī)號(hào)、郵箱、業(yè)務(wù)唯一編號(hào)

  • 用戶表 username、email;業(yè)務(wù)表的唯一業(yè)務(wù)號(hào)(如 order_no)。

CREATE TABLE users (
  id INT PRIMARY KEY,
  mobile VARCHAR(20) UNIQUE,  -- 唯一索引
  email VARCHAR(50) UNIQUE
);

3.常規(guī)索引(普通索引 / INDEX)

定義

  • 最基本的索引,只用于加速查詢,沒(méi)有唯一性約束。

底層實(shí)現(xiàn)

  • InnoDB:一般是 B+Tree 二級(jí)索引(后面會(huì)講“二級(jí)索引”)。

特點(diǎn)

  • 最常用:按條件查、排序、范圍查詢、JOIN

  • 可以是單列索引,也可以是聯(lián)合索引(復(fù)合索引)

用途

  • 頻繁作為 WHERE 條件、JOIN 條件、ORDER BY、GROUP BY 的列。

  • 支持 WHERE status = 'paid' 或 ORDER BY create_time。

例子:?jiǎn)瘟兴饕?/strong>

ALTER TABLE user ADD INDEX idx_name(name);

例子:聯(lián)合索引

ALTER TABLE user ADD INDEX idx_name_phone(name, phone);

查詢:

SELECT * FROM user WHERE name='Tom' AND phone='138...';

?? 更容易走 (name, phone) 的聯(lián)合索引。

4.全文索引(FULLTEXT)

定義

  • InnoDB 從 MySQL 5.6 開(kāi)始支持 FULLTEXT(歷史上 MyISAM 更早支持)。

  • 適合:分詞 + 相關(guān)性排序

  • 用來(lái)做“文本檢索”,支持對(duì)長(zhǎng)文本按詞(或按分詞)搜索,例如 MATCH(col) AGAINST(...)

實(shí)現(xiàn)與特點(diǎn)

  • InnoDB 的 FULLTEXT 是專門的倒排索引體系(不是 B+Tree)。

  • 更適合:文章、評(píng)論、商品描述等“文本搜索”。

  • 注意:中文檢索通常需要分詞支持(MySQL 原生能力有限,很多場(chǎng)景會(huì)用 Elasticsearch 等專用搜索引擎)。

例子

CREATE TABLE article (
  id BIGINT PRIMARY KEY,
  title VARCHAR(200),
  content TEXT,
  FULLTEXT KEY ft_content(content)
) ENGINE=InnoDB;

查詢:

SELECT * FROM article
WHERE MATCH(content) AGAINST('mysql 索引' IN NATURAL LANGUAGE MODE);

四、按“存儲(chǔ)形式/數(shù)據(jù)組織方式”分類

1.聚簇索引(聚集索引)

聚簇索引:在 InnoDB 存儲(chǔ)引擎中,聚簇索引通常就是主鍵索引 。聚簇索引的特點(diǎn)是數(shù)據(jù)與索引一體化存儲(chǔ),即數(shù)據(jù)行(整行,不是指針)直接存儲(chǔ)在索引的葉子節(jié)點(diǎn)中,并且數(shù)據(jù)按照主鍵的順序進(jìn)行物理存儲(chǔ) 。這使得聚簇索引在查詢時(shí)具有極高的效率,尤其是對(duì)于主鍵查詢和范圍查詢。因?yàn)閿?shù)據(jù)是按照主鍵順序存儲(chǔ)的,所以在進(jìn)行范圍查詢(如查詢 ID 在某個(gè)范圍內(nèi)的用戶)時(shí),可以利用索引的有序性,快速定位到滿足條件的數(shù)據(jù)。此外,聚簇索引還能利用順序檢測(cè)預(yù)取機(jī)制,提高數(shù)據(jù)讀取的效率。例如,在一個(gè)用戶表中,以用戶 ID 為主鍵創(chuàng)建聚簇索引,當(dāng)查詢用戶 ID 為 100 的用戶信息時(shí),數(shù)據(jù)庫(kù)可以直接通過(guò)聚簇索引找到對(duì)應(yīng)的葉子節(jié)點(diǎn),獲取用戶信息,無(wú)需進(jìn)行額外的查找操作。需要注意的是,一張表只能有一個(gè)聚簇索引,因?yàn)閿?shù)據(jù)的物理存儲(chǔ)順序只能有一種。

概括:用主鍵查 = 直接定位到葉子節(jié)點(diǎn) = 一次 B+Tree 查找拿到整行。

為什么叫“聚集”

  • 因?yàn)閿?shù)據(jù)行與索引鍵“聚在一起”,數(shù)據(jù)就是索引的一部分。

聚集索引選取規(guī)則:

  • 如果存在主鍵,主鍵索引就是聚集索引。

  • 如果不存在主鍵,將使用第一個(gè)唯一(UNIQUE)索引作為聚集索引。

  • 如果表沒(méi)有主鍵,或沒(méi)有合適的唯一索引,則InnoDB會(huì)自動(dòng)生成一個(gè)rowid作為隱藏的聚集索引。

聚簇索引的優(yōu)缺點(diǎn):

優(yōu)點(diǎn)

  • 查詢速度非常快:聚簇索引的查詢速度非常的快,因?yàn)檎麄€(gè) B+ 樹本身就是一顆多叉平衡樹,葉子節(jié)點(diǎn)也都是有序的,定位到索引的節(jié)點(diǎn),就相當(dāng)于定位到了數(shù)據(jù)。相比于非聚簇索引, 聚簇索引少了一次讀取數(shù)據(jù)的 IO 操作。

  • 對(duì)排序查找和范圍查找優(yōu)化:聚簇索引對(duì)于主鍵的排序查找和范圍查找速度非???。

缺點(diǎn)

  • 依賴于有序的數(shù)據(jù):因?yàn)?B+ 樹是多路平衡樹,如果索引的數(shù)據(jù)不是有序的,那么就需要在插入時(shí)排序,如果數(shù)據(jù)是整型還好,否則類似于字符串或 UUID 這種又長(zhǎng)又難比較的數(shù)據(jù),插入或查找的速度肯定比較慢。

  • 更新代價(jià)大:如果對(duì)索引列的數(shù)據(jù)被修改時(shí),那么對(duì)應(yīng)的索引也將會(huì)被修改,而且聚簇索引的葉子節(jié)點(diǎn)還存放著數(shù)據(jù),修改代價(jià)肯定是較大的,所以對(duì)于主鍵索引來(lái)說(shuō),主鍵一般都是不可被修改的。

2.非聚簇索引

也稱為二級(jí)索引,其索引存儲(chǔ)的是主鍵值,而不是實(shí)際的數(shù)據(jù)行 。當(dāng)使用非聚簇索引進(jìn)行查詢時(shí),首先會(huì)根據(jù)索引找到對(duì)應(yīng)的主鍵值,然后再通過(guò)主鍵值在聚簇索引中查找實(shí)際的數(shù)據(jù)行(整行),這個(gè)過(guò)程稱為回表查詢 。非聚簇索引支持多列組合索引,適用于多個(gè)字段聯(lián)合查詢的場(chǎng)景。例如,在一個(gè)訂單表中,經(jīng)常需要根據(jù)客戶 ID 和訂單日期進(jìn)行查詢,可以為客戶 ID 和訂單日期創(chuàng)建組合非聚簇索引。雖然非聚簇索引需要回表查詢,查詢效率相對(duì)聚簇索引略低,但在某些情況下,它可以提供更靈活的查詢方式。比如,在查詢訂單表中某個(gè)客戶在特定日期之后的訂單時(shí),通過(guò)組合非聚簇索引可以快速定位到滿足條件的主鍵值,然后再通過(guò)回表查詢獲取完整的訂單信息。

概括:二級(jí)索引的葉子節(jié)點(diǎn)存的不是整行,而是“索引列 + 主鍵值”。

覆蓋索引(避免回表)

  • 如果查詢需要的列 都在二級(jí)索引里(或索引里包含它們),那就不需要回表,這叫 覆蓋索引

  • 例如:select name from user where age=20;

    • 若建了 (age, name) 聯(lián)合索引,就可能直接從索引葉子拿到 name,無(wú)需回表。

非聚簇索引的優(yōu)缺點(diǎn):

優(yōu)點(diǎn)

更新代價(jià)比聚簇索引要小。非聚簇索引的更新代價(jià)就沒(méi)有聚簇索引那么大了,非聚簇索引的葉子節(jié)點(diǎn)是不存放數(shù)據(jù)的。

缺點(diǎn)

  • 依賴于有序的數(shù)據(jù):跟聚簇索引一樣,非聚簇索引也依賴于有序的數(shù)據(jù)。

  • 可能會(huì)二次查詢(回表):這應(yīng)該是非聚簇索引最大的缺點(diǎn)了。當(dāng)查到索引對(duì)應(yīng)的指針或主鍵后,可能還需要根據(jù)指針或主鍵再到數(shù)據(jù)文件或表中查詢。

五、圖解

1.示例表結(jié)構(gòu)

CREATE TABLE account_example (
  id INT PRIMARY KEY AUTO_INCREMENT COMMENT '賬戶ID',
  name VARCHAR(20) COMMENT '姓名',
  money DOUBLE(10,2) COMMENT '余額',
  INDEX idx_name (name),
  INDEX idx_name_money (name, money)
) ENGINE=InnoDB;
?
-- 插入數(shù)據(jù)
insert into account_example(id, name , money)
values
(1, '張三', 100.00),
(3, '李四', 200.00),
(7, '王五', 300.00);

id主鍵索引(聚簇索引)

idx_name(name)普通二級(jí)索引

idx_name_money(name, money)→ 聯(lián)合索引

2.聚簇索引(id)B+Tree 示意圖:

聚簇索引的B+Tree 的葉子節(jié)點(diǎn)存放的是整行數(shù)據(jù)。

特點(diǎn)總結(jié)

  • 一張表 只能有一個(gè)聚集索引

  • 數(shù)據(jù)行 按主鍵順序物理存儲(chǔ)

  • 使用主鍵查詢:

SELECT * FROM account WHERE id = 3;

?? 一次 B+Tree 查找即可拿到整行數(shù)據(jù),不存在回表

3.非聚簇索引(idx_name)的 B+Tree 示意圖:

非聚簇索引的葉子節(jié)點(diǎn)中:不存整行數(shù)據(jù),只存「索引列值 + 主鍵值」

二級(jí)索引的葉子節(jié)點(diǎn)下掛的是該字段值對(duì)應(yīng)的主鍵值。

4.為什么會(huì)發(fā)生回表

示例 SQL(會(huì)回表)

SELECT * FROM account WHERE name = '李四';

執(zhí)行過(guò)程拆解

Step 1:通過(guò)二級(jí)索引 idx_name 查找

name='李四'
   ↓
在 idx_name B+Tree 中定位
   ↓
得到主鍵 id = 3

Step 2:根據(jù)主鍵回到聚集索引

id=3
   ↓
在 PRIMARY KEY B+Tree 中查找
   ↓
獲取完整行數(shù)據(jù)

?? 這一步稱為:回表

本質(zhì)原因:二級(jí)索引不存完整數(shù)據(jù)

5.聯(lián)合索引 idx(name, money) 的存儲(chǔ)結(jié)構(gòu)

聯(lián)合索引葉子節(jié)點(diǎn)存:(name, money) + id

idx_name_money(name, money) B+Tree 示意圖:

6.覆蓋索引 vs 回表

? 示例 1:需要回表

SELECT * FROM account
WHERE name = '李四';
  • 使用 idx_name

  • money 不在索引中

  • 必須回表

? 示例 2:覆蓋索引(不回表)

SELECT name, money
FROM account
WHERE name = '李四';
  • 使用 idx_name_money

  • 查詢字段 全部存在索引葉子節(jié)點(diǎn)

  • 無(wú)需回表

?? 這就叫:覆蓋索引(Covering Index)

7.總結(jié)

場(chǎng)景是否回表原因
where id = ??聚集索引葉子節(jié)點(diǎn)存整行
普通二級(jí)索引查 *?二級(jí)索引不存完整數(shù)據(jù)
聯(lián)合索引覆蓋查詢字段?查詢字段都在索引中
SELECT *幾乎一定字段太多,無(wú)法覆蓋

六、關(guān)聯(lián)

功能分類在 InnoDB 的存儲(chǔ)形式
主鍵索引聚集索引(葉子存整行)
唯一索引通常是 二級(jí)索引(除非它被選為聚集索引鍵)
常規(guī)索引二級(jí)索引
全文索引倒排索引體系(不按聚集/二級(jí)的 B+Tree 邏輯走)

七、問(wèn)題

主鍵為什么不要用隨機(jī)值(如隨機(jī) UUID)?

  • 聚集索引決定了數(shù)據(jù)行的物理組織順序

  • 隨機(jī)插入會(huì)導(dǎo)致頻繁頁(yè)分裂、碎片、寫放大,性能更差 (自增/有序主鍵插入更“順滑”)

二級(jí)索引為什么存主鍵值,而不是物理地址?

  • 因?yàn)?InnoDB 的數(shù)據(jù)行會(huì)移動(dòng)/頁(yè)會(huì)分裂,存物理地址維護(hù)成本高

  • 存主鍵值更穩(wěn)定,代價(jià)是可能需要回表

建索引的常見(jiàn)收益點(diǎn)

  • 加速 WHEREJOIN、ORDER BY、GROUP BY

  • 利用覆蓋索引減少回表、減少 IO

八、總結(jié)

  • InnoDB 中,主鍵索引就是聚集索引,數(shù)據(jù)行存放在主鍵 B+Tree 的葉子節(jié)點(diǎn);

  • 二級(jí)索引的葉子節(jié)點(diǎn)只保存索引列和主鍵值,因此在查詢非索引字段時(shí)需要回表;

  • 當(dāng)查詢字段完全被索引覆蓋時(shí),可以避免回表,從而顯著提升查詢性能。

到此這篇關(guān)于MySQL索引的原理與性能優(yōu)化教程的文章就介紹到這了,更多相關(guān)索引設(shè)計(jì)優(yōu)化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL的字符集操作命令總結(jié)

    MySQL的字符集操作命令總結(jié)

    這篇文章主要介紹了MySQL的字符集操作命令總結(jié),包括各種查看數(shù)據(jù)庫(kù)、數(shù)據(jù)表等查詢命令,需要的朋友可以參考下
    2014-04-04
  • MySQL事務(wù)的四種特性總結(jié)

    MySQL事務(wù)的四種特性總結(jié)

    事務(wù)就是一組DML語(yǔ)句組成,這些語(yǔ)句在邏輯上存在相關(guān)性,這一組DML語(yǔ)句要么全部成功,要么全部失敗,是一個(gè)整體,一個(gè) MySQL 數(shù)據(jù)庫(kù),可不止你一個(gè)事務(wù)在運(yùn)行,所以一個(gè)完整的事務(wù),絕對(duì)不是簡(jiǎn)單的 sql 集合,本文就給大家總結(jié)一下MySQL事務(wù)的四種特性
    2023-08-08
  • MySQL中的臟讀與幻讀使用及說(shuō)明

    MySQL中的臟讀與幻讀使用及說(shuō)明

    MySQL通過(guò)事務(wù)隔離級(jí)別(如REPEATABLEREAD)和鎖機(jī)制(共享/排他鎖)解決臟讀與幻讀問(wèn)題,結(jié)合MVCC與Next-KeyLocks優(yōu)化并發(fā)一致性,合理配置可平衡性能與數(shù)據(jù)可靠性
    2025-08-08
  • MySQL之修改數(shù)據(jù)表存儲(chǔ)引擎的三種方式

    MySQL之修改數(shù)據(jù)表存儲(chǔ)引擎的三種方式

    這篇文章主要介紹了MySQL之修改數(shù)據(jù)表存儲(chǔ)引擎的三種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 更改Mysql root用戶密碼

    更改Mysql root用戶密碼

    這篇文章主要介紹了更改Mysql root用戶密碼的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • MySQL查詢?nèi)哂嗨饕臀词褂眠^(guò)的索引操作

    MySQL查詢?nèi)哂嗨饕臀词褂眠^(guò)的索引操作

    這篇文章主要介紹了MySQL查詢?nèi)哂嗨饕臀词褂眠^(guò)的索引操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • Mysql?for?update導(dǎo)致大量行鎖的問(wèn)題

    Mysql?for?update導(dǎo)致大量行鎖的問(wèn)題

    這篇文章主要介紹了Mysql?for?update?導(dǎo)致大量行鎖的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • MySQL?半同步復(fù)制的實(shí)現(xiàn)

    MySQL?半同步復(fù)制的實(shí)現(xiàn)

    半同步復(fù)制是MySQL復(fù)制的一種形式,它結(jié)合了異步復(fù)制和同步復(fù)制的特性,本文主要介紹了?MySQL?半同步復(fù)制的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-09-09
  • 解析SQL Server 視圖、數(shù)據(jù)庫(kù)快照

    解析SQL Server 視圖、數(shù)據(jù)庫(kù)快照

    在程序開(kāi)發(fā)過(guò)程中,任何一個(gè)項(xiàng)目都離不開(kāi)數(shù)據(jù)庫(kù),這篇文章給大家詳細(xì)介紹SQL Server 視圖、數(shù)據(jù)庫(kù)快照相關(guān)內(nèi)容,需要的朋友可以參考下
    2015-08-08
  • 如何使用mysql查詢24小時(shí)數(shù)據(jù)

    如何使用mysql查詢24小時(shí)數(shù)據(jù)

    在進(jìn)行實(shí)時(shí)數(shù)據(jù)處理時(shí),我們常常需要查詢最近24小時(shí)的數(shù)據(jù)來(lái)進(jìn)行分析和處理,下面我們將介紹如何使用MySQL查詢最近24小時(shí)的數(shù)據(jù),需要的朋友可以參考下
    2023-07-07

最新評(píng)論

阿巴嘎旗| 广河县| 安吉县| 竹溪县| 宁晋县| 望都县| 县级市| 新泰市| 镇坪县| 大兴区| 铜山县| 柳江县| 凤翔县| 高阳县| 南华县| 宣化县| 肇庆市| 双辽市| 泗阳县| 德州市| 广宁县| 石家庄市| 梅河口市| 扬州市| 莱阳市| 南丰县| 仙桃市| 石城县| 南乐县| 衡南县| 上虞市| 出国| 贵南县| 临泽县| 黎川县| 德江县| 政和县| 黄骅市| 江川县| 安阳县| 屯留县|