真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

oracle怎么索引合并 mysql索引合并

oracle 數(shù)據(jù)庫(kù)如何建立索引 如何用索引?

創(chuàng)建索引語法:

成都創(chuàng)新互聯(lián)是一家專業(yè)提供烏恰企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、HTML5建站、小程序制作等業(yè)務(wù)。10年已為烏恰眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。

CREATE [UNIQUE] | [BITMAP] INDEX index_name

--unique表示唯一索引

ON table_name([column1 [ASC|DESC],column2

--bitmap,創(chuàng)建位圖索引

[ASC|DESC],…] | [express])[TABLESPACE tablespace_name][PCTFREE n1]

--指定索引在數(shù)據(jù)塊中空閑空間

[STORAGE (INITIAL n2)][NOLOGGING]

--表示創(chuàng)建和重建索引時(shí)允許對(duì)表做DML操作,默認(rèn)情況下不應(yīng)該使用

[NOLINE][NOSORT];

--表示創(chuàng)建索引時(shí)不進(jìn)行排序,默認(rèn)不適用,如果數(shù)據(jù)已經(jīng)是按照該索引順序排列的可以使用

擴(kuò)展資料:

1、如果有兩個(gè)或者以上的索引,其中有一個(gè)唯一性索引,而其他是非唯一,這種情況下oracle將使用唯一性索引而完全忽略非唯一性索引

2、至少要包含組合索引的第一列(即如果索引建立在多個(gè)列上,只有它的第一個(gè)列被where子句引用時(shí),優(yōu)化器才會(huì)使用該索引)

3、小表不要簡(jiǎn)歷索引

4、對(duì)于基數(shù)大的列適合建立B樹索引,對(duì)于基數(shù)小的列適合簡(jiǎn)歷位圖索引

5、列中有很多空值,但經(jīng)常查詢?cè)摿猩戏强沼涗洉r(shí)應(yīng)該建立索引

6、經(jīng)常進(jìn)行連接查詢的列應(yīng)該創(chuàng)建索引

7、使用create index時(shí)要將最常查詢的列放在最前面

8、LONG(可變長(zhǎng)字符串?dāng)?shù)據(jù),最長(zhǎng)2G)和LONG RAW(可變長(zhǎng)二進(jìn)制數(shù)據(jù),最長(zhǎng)2G)列不能創(chuàng)建索引

9、限制表中索引的數(shù)量(創(chuàng)建索引耗費(fèi)時(shí)間,并且隨數(shù)據(jù)量的增大而增大;索引會(huì)占用物理空間;當(dāng)對(duì)表中的數(shù)據(jù)進(jìn)行增加、刪除和修改的時(shí)候,索引也要?jiǎng)討B(tài)的維護(hù),降低了數(shù)據(jù)的維護(hù)速度)

Oracle數(shù)據(jù)庫(kù),兩個(gè)select查詢?cè)趺春喜⒊梢粋€(gè)?

listagg()函數(shù)會(huì)將某列的查詢結(jié)果通過分組的形式合并成一行,并且我們可以在各個(gè)結(jié)果集中定義自己想要的分隔符。

案例:

select * from test;

select id,listagg(name,',') within GROUP (order by name) from test group by id;

listagg()函數(shù)合并結(jié)果時(shí),我們可以通過order by?設(shè)置它合并的先后順序,通過 group by 來設(shè)置它合并的條件。有點(diǎn)類似于sum()或者count()的使用方法。

值得注意的是,這個(gè)函數(shù)的連接符只會(huì)出現(xiàn)在查詢結(jié)果的中間,而且這個(gè)合并會(huì)根據(jù)分組條件無限疊加。因此,當(dāng)我們需要將結(jié)果插入數(shù)據(jù)表的某一行時(shí),請(qǐng)記得加上長(zhǎng)度限制(通常我們使用substr()函數(shù)將太長(zhǎng)的部分去掉),以免出現(xiàn)數(shù)據(jù)丟失等情況。

Oracle數(shù)據(jù)訪問和索引的使用

· 通過全表掃描的方式訪問數(shù)據(jù);

· 通過ROWID訪問數(shù)據(jù);

· 通過索引的方式訪問數(shù)據(jù);

· Oracle順序讀取表中所有的行,并逐條匹配WHERE限定條件。

· 采用多塊讀的方式進(jìn)行全表掃描,可以有效提高系統(tǒng)的吞吐量,降低I/O次數(shù)。

· 即使創(chuàng)建索引,Oracle也會(huì)根據(jù)CBO的計(jì)算結(jié)果,決定是否使用索引。

注意事項(xiàng):

· 只有全表掃描時(shí)才可以使用多塊讀。該方式下,單個(gè)數(shù)據(jù)塊僅訪問一次。

· 對(duì)于數(shù)據(jù)量較大的表,不建議使用全表掃描進(jìn)行訪問。

· 當(dāng)訪問表中的數(shù)據(jù)量超過數(shù)據(jù)總量的5%—10%時(shí),通常Oracle會(huì)采用全表掃描的方式進(jìn)行訪問。

· 并行查詢可能會(huì)導(dǎo)致優(yōu)化器選擇全表掃描的方式。1.2ROWID訪問表

· Rowid是數(shù)據(jù)存放在數(shù)據(jù)庫(kù)中的物理地址,能夠唯一標(biāo)識(shí)表中的一條數(shù)據(jù)。

· Rowid指出了一條記錄所在的數(shù)據(jù)文件、塊號(hào)以及行號(hào)的位置,因此通過ROWID定位單行數(shù)據(jù)是最快的方法。

注意事項(xiàng):

· Rowid作為一個(gè)偽列,其數(shù)值并不存儲(chǔ)在數(shù)據(jù)庫(kù)中,當(dāng)查詢時(shí)才進(jìn)行計(jì)算。

· Rowid除了在同一集簇中可能不唯一外,每條記錄的Rowid唯一。1.3 INDEX訪問表

· 通過索引查找相應(yīng)數(shù)據(jù)行的Rowid,再根據(jù)Rowid查找表中實(shí)際數(shù)據(jù)的方式稱為“索引查找”或者“索引掃描”。

· 一個(gè)Rowid對(duì)應(yīng)一條數(shù)據(jù)行(根據(jù)Rowid查找結(jié)果,僅需要對(duì)Rowid相應(yīng)數(shù)據(jù)的數(shù)據(jù)塊進(jìn)行一次I/O操作),因此該方式屬于“單塊讀”。

· 對(duì)于索引,除了存儲(chǔ)索引的數(shù)據(jù)外,還保存有該數(shù)據(jù)對(duì)應(yīng)的Rowid信息。

· 索引掃描分為兩步:1)掃描索引確定相應(yīng)的Rowid信息。 2)根據(jù)Rowid從表中獲得對(duì)應(yīng)的數(shù)據(jù)。

注意事項(xiàng):

· 對(duì)于選擇性高的數(shù)據(jù)行,索引的使用會(huì)提升查詢的性能。但對(duì)于DML操作,尤其是批量數(shù)據(jù)的操作,可能會(huì)導(dǎo)致性能的降低。

· 全表掃描的效率不一定比索引掃描差,關(guān)鍵看數(shù)據(jù)在數(shù)據(jù)塊上的具體分布。

索引是關(guān)系數(shù)據(jù)庫(kù)中用于存放每一條記錄的一種對(duì)象,主要目的是加快數(shù)據(jù)的讀取速度和完整性檢查。建立索引是一項(xiàng)技術(shù)性要求高的工作。一般在數(shù)據(jù)庫(kù)設(shè)計(jì)階段的與數(shù)據(jù)庫(kù)結(jié)構(gòu)一道考慮。應(yīng)用系統(tǒng)的性能直接與索引的合理直接有關(guān)。

(1) 單列索引

單列索引是基于單個(gè)列所建立的索引。

(2) 復(fù)合索引

復(fù)合索引是基于兩列或是多列的索引,在同一張表上可以有多個(gè)索引,但是要求列的組合必須不同。

(1) 重命名索引

(2) 合并索引

(表使用一段時(shí)間后在索引中會(huì)產(chǎn)生碎片,此時(shí)索引效率會(huì)降低,可以選擇重建索引或者合并索引,合并索引方式更好些,無需額外存儲(chǔ)空間,代價(jià)較低)

(3) 重建索引

方式一:刪除原來的索引,重新建立索引

當(dāng)不需要時(shí)可以將索引刪除以釋放出硬盤空間。命令如下:

例如:

注:當(dāng)表結(jié)構(gòu)被刪除時(shí),有其相關(guān)的所有索引也隨之被刪除。

方式二: Alter index 索引名稱 rebuild;

· 通過創(chuàng)建唯一性索引,可以保證數(shù)據(jù)庫(kù)表中每一行數(shù)據(jù)的唯一性。

· 索引可以大大加快數(shù)據(jù)的檢索速度,這是創(chuàng)建索引的最主要的原因。

· 可以加速表和表之間的連接,特別是在實(shí)現(xiàn)數(shù)據(jù)的參考完整性方面特別有意義。

· 在使用分組和排序子句進(jìn)行數(shù)據(jù)檢索時(shí),同樣可以顯著減少查詢中分組和排序的時(shí)間。

· 通過使用索引,可以在查詢的過程中,使用優(yōu)化隱藏器,提高系統(tǒng)的性能。

· 索引的層次不要超過4層。

· 創(chuàng)建索引和維護(hù)索引要耗費(fèi)時(shí)間,這種時(shí)間隨著數(shù)據(jù)量的增加而增加。

· 除了數(shù)據(jù)表占數(shù)據(jù)空間之外,每一個(gè)索引還要占一定的物理空間,如果要建立聚簇索引,那么需要的空間就會(huì)更大。

· 當(dāng)對(duì)表中的數(shù)據(jù)進(jìn)行增加、刪除和修改的時(shí)候,索引也要?jiǎng)討B(tài)的維護(hù),這樣就降低了數(shù)據(jù)的維護(hù)速度。

· 更新數(shù)據(jù)的時(shí)候,系統(tǒng)必須要有額外的時(shí)間來同時(shí)對(duì)索引進(jìn)行更新,以維持?jǐn)?shù)據(jù)和索引的一致性。

1) 不恰當(dāng)?shù)乃饕坏谑聼o補(bǔ),反而會(huì)降低系統(tǒng)性能。因?yàn)榇罅康乃饕谶M(jìn)行插入、修改和刪除操作時(shí)比沒有索引花費(fèi)更多的系統(tǒng)時(shí)間。

1) 應(yīng)該建索引的列

· 在經(jīng)常需要搜索的列上,可以加快搜索的速度;

· 在作為主鍵的列上,強(qiáng)制該列的唯一性和組織表中數(shù)據(jù)的排列結(jié)構(gòu);

· 在經(jīng)常用在連接的列上,這些列主要是一些外鍵,可以加快連接的速度;

· 在經(jīng)常需要根據(jù)范圍進(jìn)行搜索的列上創(chuàng)建索引,因?yàn)樗饕呀?jīng)排序,其指定的范圍是連續(xù)的;

· 在經(jīng)常需要排序的列上創(chuàng)建索引,因?yàn)樗饕呀?jīng)排序,這樣查詢可以利用索引的排序,加快排序查詢時(shí)間;

· 在經(jīng)常使用在WHERE子句中的列上面創(chuàng)建索引,加快條件的判斷速度。

2) 不應(yīng)該建索引的列

· 在大表上建立索引才有意義,小表無意義。

· 對(duì)于那些在查詢中很少使用或者參考的列不應(yīng)該創(chuàng)建索引。

· 對(duì)于那些只有很少數(shù)據(jù)值的列也不應(yīng)該增加索引。比如性別,在查詢的結(jié)果中,結(jié)果集的數(shù)據(jù)行占了表中數(shù)據(jù)行的很大比例,。增加索引,并不能明顯加快檢索速度。

· 對(duì)于那些定義為blob數(shù)據(jù)類型的列不應(yīng)該增加索引。這是因?yàn)?,這些列的數(shù)據(jù)量要么相當(dāng)大,要么取值很少。

· 當(dāng)修改性能遠(yuǎn)遠(yuǎn)大于檢索性能時(shí),不應(yīng)該創(chuàng)建索引。

一個(gè)表中有幾百萬條數(shù)據(jù),對(duì)某個(gè)字段加了索引,但是查詢時(shí)性能并沒有什么提高,這主要可能是oracle的索引限制造成的。Oracle的索引有一些索引限制,在這些索引限制發(fā)生的情況下,即使已經(jīng)加了索引,oracle還是會(huì)執(zhí)行一次全表掃描,查詢的性能不會(huì)比不加索引有所提高,反而可能由于數(shù)據(jù)庫(kù)維護(hù)索引的系統(tǒng)開銷造成性能更差。

下面的查詢即使在djlx列有索引,查詢語句仍然執(zhí)行一次全表掃描。

把上面的語句改成如下的查詢語句,這樣,在采用基于規(guī)則的優(yōu)化器而不是基于代價(jià)的優(yōu)化器(更智能)時(shí),將會(huì)使用索引。

特別注意:通過把不等于操作符改成OR條件,就可以使用索引,避免全表掃描。

使用IS NULL或IS NOT NULL同樣會(huì)限制索引的使用。因此在建表時(shí),把需要索引的列設(shè)成NOT NULL。如果被索引的列在某些行中存在NULL值,就不會(huì)使用這個(gè)索引(除非索引是一個(gè)位圖索引)。

如果不使用基于函數(shù)的索引,那么在SQL語句的WHERE子句中對(duì)存在索引的列使用函數(shù)時(shí),會(huì)使優(yōu)化器忽略掉這些索引。 下面的查詢不會(huì)使用索引(只要它不是基于函數(shù)的索引)

也是比較難于發(fā)現(xiàn)的性能問題之一。比如:bdcs_qlr_xz中的zjh是NVARCHAR2類型,在zjh字段上有索引。如果使用下面的語句將執(zhí)行全表掃描。

因?yàn)镺racle會(huì)自動(dòng)把查詢語句改為

特別注意:不匹配的數(shù)據(jù)類型之間比較會(huì)讓Oracle自動(dòng)限制索引的使用,即便對(duì)這個(gè)查詢執(zhí)行Explain Plan也不能讓您明白為什么做了一次“全表掃描”。

(1) 索引無效

(2) 索引有效

oracle 數(shù)據(jù)庫(kù)查詢兩個(gè)表然后把結(jié)果合并成一個(gè)表

實(shí)現(xiàn)的方法和詳細(xì)的操作步驟如下:

1、首先,在計(jì)算機(jī)桌面上雙擊“

Management Studio”圖標(biāo),如下圖所示,然后進(jìn)入下一步。

2、其次,完成上述步驟后,單擊左上角的“新建查詢”按鈕,如下圖所示,然后進(jìn)入下一步。

3、接著,完成上述步驟后,在界面中輸入sql語句“

select * from test1,test2;”,將兩個(gè)表合并成一個(gè)表,如下圖所示,然后進(jìn)入下一步。

4、然后,完成上述步驟后,單擊下圖紅框標(biāo)注的工具欄中的“運(yùn)行三角形”圖標(biāo),然后進(jìn)入下一步。

5、最后,完成上述步驟后,在此界面中,表明兩個(gè)表已成功合并,如下圖所示。這樣,問題就解決了。

如何管理oracle 的分區(qū)表和索引(續(xù)

一、創(chuàng)建分區(qū)表

1、范圍分區(qū)

根據(jù)數(shù)據(jù)表字段值的范圍進(jìn)行分區(qū)

舉個(gè)例子,根據(jù)學(xué)生的不同分?jǐn)?shù)對(duì)分?jǐn)?shù)表進(jìn)行分區(qū),創(chuàng)建一個(gè)分區(qū)表如下:create table range_fraction(

id number(8),

name varchar2(20),

fraction number(3),

grade number(2)

)

partition by range(fraction)

(

partition fraction_60 values less than(60), --不及格partition fraction_80 values less than(85), --及格partition fraction_100 values less than(maxvalue) --優(yōu)秀)創(chuàng)建完分區(qū)表后向表中添加一些數(shù)據(jù):declarename varchar2(10);

fraction number(5);

grade number(5);

i number(8):=1;

begin

for i in 1..100000 LOOP

SELECT CHR (ROUND (DBMS_RANDOM.VALUE (97, 122))) INTO NAME FROM DUAL;SELECT ABS(MOD(DBMS_RANDOM.RANDOM,101)) into fraction FROM DUAL;SELECT ABS(MOD(DBMS_RANDOM.RANDOM,10))+1 into grade FROM DUAL;insert into range_fraction values(seq_range_fraction.nextval ,name,fraction,grade);END LOOP;end;

查詢分區(qū)表:--分別查詢所有的,不及格的,中等的,優(yōu)秀的成績(jī)select * from range_fraction;select * from range_fraction partition(fraction_60) ;select * from range_fraction partition(fraction_80) ;select * from range_fraction partition(fraction_100) ;當(dāng)我們的查詢語句不指定分區(qū)的時(shí)候,如果分區(qū)字段出現(xiàn)在where條件之后,Oracle會(huì)自動(dòng)根據(jù)字段值的范圍掃描響應(yīng)的分區(qū):

select * from range_fraction where fraction30; 這句SQL執(zhí)行的時(shí)候只會(huì)掃描不及格的分區(qū)select * from range_fraction where fraction80; 這句SQL執(zhí)行的時(shí)候會(huì)掃描不及格和中等兩個(gè)分區(qū)2、散列分區(qū)在范圍分區(qū)中,分區(qū)字段的連續(xù)值通常出現(xiàn)在一個(gè)分區(qū)內(nèi),而在散列分區(qū)中,連續(xù)的字段值不一定存儲(chǔ)在相同的分區(qū)中。散列分區(qū)把記錄分布在比范圍分區(qū)更多的分區(qū)上,這減少了I/O爭(zhēng)用的可能性。

為了創(chuàng)建一個(gè)散列分區(qū),應(yīng)該用partition by hash語句代替partition by range子句,如下所示:

第一種為各個(gè)分區(qū)指定不同的表空間,表空間數(shù)量不用等于分區(qū)數(shù)量,當(dāng)表空間數(shù)量大于分區(qū)數(shù)量的時(shí)候會(huì)循環(huán)寫入各個(gè)表空間:

create table range_fraction1

(

id number(8),

name varchar2(20),

fraction number(3),

grade number(2)

)

partition by hash(fraction)

partitions 8

store in (users,tbs_haicheng)

第二種為每個(gè)分區(qū)指定一個(gè)分區(qū)名稱并為其指定表空間:create table range_fraction1(

id number(8),

name varchar2(20),

fraction number(3),

grade number(1)

)

partition by hash(fraction)

(

partition p1 tablespace tbs_haicheng ,

partition p2 tablespace users

);

3、列表分區(qū)

還可以使用列表分區(qū)代替范圍分區(qū)和散列分區(qū)。在列表分區(qū)中,告訴Oracle所有可能的值,并指定應(yīng)當(dāng)插入相應(yīng)行的分區(qū)。

我們將1、2、3、4班級(jí)的數(shù)據(jù)放在一個(gè)分區(qū),將6、7、8的數(shù)據(jù)放在一個(gè)分區(qū),將其他的再放在一個(gè)分區(qū),建表如下:

create table range_fraction1

(

id number(8),

name varchar2(20),

fraction number(3),

grade number(2)

)

partition by list(grade)

(

partition p1 values(1,2,3,4) tablespace tbs_haicheng ,partition p2 values(5,6,7,8) tablespace users,?

1

partition p3 values(default)

4、組合分區(qū)(創(chuàng)建子分區(qū))

即分區(qū)的分區(qū)。例如可以先進(jìn)行范圍分區(qū),再對(duì)各個(gè)范圍分區(qū)創(chuàng)建列表分區(qū)。

對(duì)于非常大的表來說,這種組合分區(qū)是一種把數(shù)據(jù)分成可管理和可調(diào)整的組成部分的有效方法。

舉個(gè)例子:按照分?jǐn)?shù)范圍分區(qū)后再將ID散列分區(qū):

create table range_fraction1

(

id number(8),

name varchar2(20),

fraction number(3),

grade number(1)

)

partition by range(fraction)

subpartition by hash(id)

subpartitions 4

(

partition fraction_60 values less than(60), --不及格partition fraction_80 values less than(85), --及格partition fraction_100 values less than(maxvalue) --優(yōu)秀)二、索引分區(qū)

在分區(qū)表上可以建立三種類型的索引:1和普通表一樣的全局索引;2.全局分區(qū)索引;3.本地分區(qū)索引1.建立普通的索引create index index_fraction on range_fraction(fraction);2.建立本地分區(qū)索引(就是一個(gè)索引分區(qū)只能對(duì)應(yīng)一個(gè)表分區(qū))?

create index local_index_fraction on range_fraction(fraction) local;3.建立全局分區(qū)索引(屬于散列索引分區(qū),就是一個(gè)索引分區(qū)可能指向多個(gè)表分區(qū))?

create index global_index_fraction on range_fraction(fraction)GLOBAL partition by range(fraction)(

part_01 values less than(1000),

part_02 values less than(MAXVALUE)

);

三、管理分區(qū)表

1、增加分區(qū)

對(duì)于范圍分區(qū)來說,添加一個(gè)分區(qū),必須該分區(qū)劃定的界限高于原來的最大界限,也就是說只能往上加,不能往下加。那么對(duì)于用maxvalue關(guān)鍵字創(chuàng)建的范圍分區(qū)就不能增加分區(qū)了舉例:

create table range_fraction

(

id number(8),

name varchar2(20),

fraction number(3),

grade number(2)

)

partition by range(fraction)

(

partition fraction_60 values less than(40), --不及格partition fraction_80 values less than(60), --及格partition fraction_100 values less than(80) --優(yōu)秀)對(duì)于該分區(qū)我們?cè)黾右粋€(gè)分區(qū):

ALTER TABLE range_fraction ADD PARTITION fraction_100 VALUES LESS THAN (100);為列表分區(qū)添加一個(gè)分區(qū):

create table range_fraction

(

id number(8),

name varchar2(20),

fraction number(3),

grade number(2)

)

partition by list(grade)

(

partition p1 values(1,2,3) tablespace tbs_haicheng ,partition p2 values(4,5,6) tablespace users);ALTER TABLE range_fraction ADD partition p3 VALUES (7,8);我們?cè)贋閜3分區(qū)新增兩個(gè)表分區(qū)值:

ALTER TABLE range_fraction MODIFY PARTITION p3 ADD VALUES(9,10);然后再將p3分區(qū)的表分區(qū)值中的10刪掉:

ALTER TABLE range_fraction MODIFY PARTITION p3 DROP VALUES(10);為哈希分區(qū)添加一個(gè)子分區(qū):

ALTER TABLE TABLENAME ADD PARTITION PARTNAME;添加一個(gè)子分區(qū)的格式:

ALTER TABLE TABLENAME MODIFY PARTITION PARTNAME ADD SUBPARTITION SUBPARTNAME;2、刪除分區(qū)刪除分區(qū)比較簡(jiǎn)單,格式如下:

ALTER TABLE ... DROP PARTITION part_name;3、分區(qū)合并合并父分區(qū)格式:ALTER TABLE TABLENAME MERGE PARTITIONS p1-1, p1-2 INTO PARTITION p1 UPDATE INDEXES;如果省略了UPDATE INDEXES 的話需要為受影響的分區(qū)重建索引合并子分區(qū)的格式:

ALTER TABLE TABLENAME

MERGE SUBPARTITIONS part_1_sub_2, part_1_sub_3 INTO SUBPARTITION part_1_sub_2 UPDATE INDEXES;4、轉(zhuǎn)換分區(qū)可以將分區(qū)表轉(zhuǎn)換成非分區(qū)表,或者幾種不同分區(qū)表之間的轉(zhuǎn)換。如下:

CREATE TABLE hash_part02 AS SELECT * FROMhash_example WHERE 1=2;ALTER TABLE hash_example EXCHANGE PARTITIONpart02 WITH TABLE hash_part02;這時(shí),分區(qū)表hash_example中的part02分區(qū)的資料將被轉(zhuǎn)移到hash_part02這個(gè)非分區(qū)表中。


網(wǎng)站名稱:oracle怎么索引合并 mysql索引合并
轉(zhuǎn)載來源:http://weahome.cn/article/hjjocg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部