縱向可擴展數據庫中的范式約束分區_第1頁
縱向可擴展數據庫中的范式約束分區_第2頁
縱向可擴展數據庫中的范式約束分區_第3頁
縱向可擴展數據庫中的范式約束分區_第4頁
縱向可擴展數據庫中的范式約束分區_第5頁
已閱讀5頁,還剩19頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

17/23縱向可擴展數據庫中的范式約束分區第一部分范式約束分區概念 2第二部分縱向可擴展數據庫特征 4第三部分分庫分表中的范式約束 6第四部分數據一致性維護策略 8第五部分讀寫負載均衡機制 11第六部分分區邊界確定算法 13第七部分故障轉移與災難恢復 15第八部分數據管理優化方案 17

第一部分范式約束分區概念范式約束分區

范式約束分區是一種數據庫分區技術,它將數據表按范式約束進行分區,以優化查詢性能和數據完整性。

原理

范式約束分區將數據表劃分為多個分區,每個分區都包含滿足特定范式約束的數據。范式約束是指數據模型中定義的規則,用于確保數據的完整性和一致性。例如,主鍵約束、外鍵約束和唯一性約束都是常見的范式約束。

通過將數據按范式約束分區,可以實現以下優勢:

*查詢優化:查詢可以被路由到包含相關數據的特定分區,從而減少掃描數據量和提高查詢性能。

*數據完整性:分區可以強制執行范式約束,防止違反數據的添加或更新。

*并發性:分區可以隔離對不同數據分區的并發訪問,從而提高并發性。

類型

范式約束分區可以根據所強制執行的范式約束類型進行分類:

*主鍵分區:將數據按主鍵值分區,確保每個分區內的數據具有唯一的主鍵。

*外鍵分區:將數據按外鍵值分區,確保每個分區內的數據都引用相同父表中的數據。

*唯一性約束分區:將數據按唯一性約束列值分區,確保每個分區內的數據都具有唯一的約束值。

實現

范式約束分區可以在以下類型的數據庫中實現:

*關系數據庫:例如,Oracle、MySQL、PostgreSQL和SQLServer

*NoSQL數據庫:例如,MongoDB、Cassandra和Redis

每個數據庫系統都有其實現范式約束分區的特定方法。例如,Oracle使用分區鍵概念,而MySQL使用分區表概念。

選擇

選擇范式約束分區方案時,需要考慮以下因素:

*數據分布:數據的分布情況將影響分區方案的效率。

*查詢模式:需要考慮常見的查詢模式以優化分區策略。

*數據大小:分區大小應該足夠大以實現查詢優化,但又足夠小以避免成為查詢瓶頸。

*并發性需求:如果需要高并發性,則需要考慮隔離不同分區之間的訪問。

優點和缺點

優點:

*查詢優化

*數據完整性

*并發性

*可擴展性

缺點:

*部署和管理復雜性

*某些查詢可能涉及多個分區,降低性能

*數據更新可能需要跨分區操作,導致并發問題第二部分縱向可擴展數據庫特征關鍵詞關鍵要點主題名稱:可伸縮性

1.可伸縮數據庫能夠根據工作負載的變化自動調整資源,以滿足不斷增長的需求。

2.縱向可伸縮性涉及垂直擴展,即向現有服務器添加更多資源(如內存、CPU),以處理不斷增長的數據量和并發性。

3.通過縱向擴展,數據庫可以處理更大的數據集,同時提供更快的響應時間和吞吐量。

主題名稱:分區

縱向可擴展數據庫特征

縱向可擴展數據庫,也稱為垂直可擴展數據庫,是能夠通過添加更多計算資源(如CPU和內存)來提高處理能力的數據庫系統。與橫向可擴展數據庫形成對比,后者通過添加更多服務器節點來實現擴展。

縱向可擴展數據庫的特征包括:

1.計算能力集中:

*處理負載集中在一個物理服務器上,而不是分布在多個節點之間。

*這簡化了數據庫管理,因為管理員只需監控和管理一臺服務器。

2.資源共享:

*數據庫實例的所有組件(如緩存、緩沖池和并發控制結構)在同一臺服務器上共享。

*這提高了資源利用率,并減少了組件間通信的開銷。

3.數據局部性:

*由于數據和處理負載都駐留在同一服務器上,因此數據訪問可以從局部性中受益。

*這減少了磁盤I/O操作,提高了查詢性能。

4.可靠性和可用性:

*單服務器架構簡化了故障轉移和恢復過程,提高了系統的可靠性。

*數據庫管理系統通常提供高可用性功能,例如故障轉移和復制,以確保數據在服務器故障時不會丟失。

5.成本效益:

*與橫向可擴展數據庫相比,縱向可擴展數據庫的初始部署和維護成本更低。

*這是因為不需要購買和管理多個服務器節點。

6.限制:

*縱向可擴展數據庫存在固有的可擴展性限制。

*單臺服務器的計算和內存容量是有限的,這最終會限制數據庫的大小和吞吐量。

縱向可擴展數據庫非常適合以下場景:

*處理負載相對較小且可預測的應用程序

*要求低延遲和高吞吐量的應用程序

*需要可靠性和高可用性的應用程序

*預算有限的組織或需要快速部署的應用程序第三部分分庫分表中的范式約束范式約束分區

范式約束的概念

范式約束是關系數據庫中用于確保數據完整性和一致性的規則。范式約束包括:

*第一范式(1NF):要求每個表中的每一行都表示一個唯一且不可分割的實體。

*第二范式(2NF):要求每個非主鍵屬性都完全依賴于主鍵。

*第三范式(3NF):要求每個非主鍵屬性都完全依賴于表的候選鍵。

分庫分表中的范式約束

在分庫分表中,將數據表劃分為多個較小的分區,可以提高數據庫的性能和可擴展性。然而,分庫分表也可能導致范式約束的違反。

保證范式約束的策略

為了保證分庫分表后的范式約束,可以采用以下策略:

1.水平分區:

*將表中的數據按行水平分區,每個分區包含部分數據行。

*此策略可確保1NF和2NF,因為分區中仍然包含完整的行數據。

*然而,3NF可能會受到影響,如果候選鍵在分區之間分割。

2.垂直分區:

*將表中的數據按列垂直分區,每個分區包含表的特定列集合。

*此策略可確保1NF和2NF,因為分區中仍然包含完整的列數據。

*然而,3NF可能會受到影響,如果候選鍵在分區之間分割。

3.哈希分區:

*使用哈希函數將數據行分配到不同的分區。

*此策略可確保1NF,因為每個分區包含具有相同哈希值的數據行。

*然而,2NF和3NF可能會受到影響,因為關聯數據可能分布在多個分區中。

4.混合分區:

*結合水平和垂直分區策略。

*此策略可以提供更好的性能和可擴展性,同時最大程度地減少對范式約束的違反。

案例分析

場景:

考慮一個具有以下模式的表:

```

CREATETABLEemployee(

employee_idINTNOTNULL,

employee_nameVARCHAR(255),

department_idINTNOTNULL,

salaryINT

);

```

分庫分表方案:

*水平分區:按`department_id`將表分為多個分區。

*垂直分區:將`department_id`和`salary`列移動到一個單獨的分區。

范式約束影響:

*1NF和2NF得到保留,因為每個分區仍然包含完整的數據行。

*3NF可能會受到影響,因為候選鍵`(employee_id,department_id)`在分區之間分割。

解決方法:

*復制`department_id`列到每個分區,以保留3NF。

*使用混合分區,將表按`department_id`水平分區,并將`salary`列垂直分區到一個單獨的分區。

結論

在分庫分表中,通過仔細選擇分區策略并采用適當的技術,可以保證范式約束。水平分區、垂直分區、哈希分區和混合分區都可以在保持數據完整性的同時提高性能和可擴展性。在設計分庫分表方案時,仔細考慮范式約束的影響至關重要。第四部分數據一致性維護策略關鍵詞關鍵要點主題名稱:基于規則的方法

1.定義明確的數據一致性規則,指定在分區之間進行數據操作時應強制執行的條件。

2.使用觸發器或約束來實施規則,確保在更新或刪除數據時維護一致性。

3.需要仔細制定規則以涵蓋所有可能的數據修改場景,并避免引入不必要的限制。

主題名稱:基于版本控制的方法

數據一致性維護策略

在縱向可擴展數據庫中,范式約束分區涉及將表按其鍵值范圍水平分區。這種分區策略帶來了維護數據一致性的挑戰,因為不同分區的記錄可能包含影響彼此一致性的相關數據。

為了解決這些挑戰,縱向可擴展數據庫通常采用以下數據一致性維護策略:

1.事務控制

*分布式事務管理器(DTM):負責協調不同分區上的事務,確保原子性、一致性、隔離性和持久性(ACID)屬性。

*本地事務管理器(LTM):在每個分區上執行局部事務,并與DTM協作以確保全局事務的ACID屬性。

*兩階段提交(2PC):一種分布式提交協議,確保在所有分區上成功提交事務或在發生故障時回滾事務。

2.樂觀并發控制

*版本控制:保留數據行的歷史版本,以便在發生沖突時進行回滾。

*多版本并發控制(MVCC):允許對同一行的并發讀寫,同時保留不同版本的歷史,以防止沖突寫入。

*時間戳順序:使用時間戳對并發事務進行排序,確保按順序執行以避免沖突。

3.復制和復制控制

*主復制:其中一個分區充當主分區,處理寫入操作,而其他分區充當副本,通過復制從主分區接收更新。

*多主復制:允許多個分區寫入數據,但使用沖突解決機制(例如版本控制或鎖)來維護一致性。

*沖突檢測和解決:在復制環境中識別和解決不同副本之間的沖突。

4.約束檢查

*分區內約束檢查:在每個分區內執行范式約束,確保數據完整性。

*跨分區約束檢查:使用觸發器或其他機制在不同分區之間執行跨分區約束,確保全局數據一致性。

*延遲約束檢查:在事務提交后執行某些約束檢查,以避免事務期間的性能開銷。

5.審計和修復

*數據審計:定期檢查數據以識別和修復不一致性。

*數據修復:使用事務或補償措施來修復已檢測到的不一致性。

*災難恢復:實施災難恢復計劃,以在發生故障時恢復數據一致性。

選擇最合適的數據一致性維護策略取決于應用程序的具體要求和數據庫系統的功能。這些策略旨在平衡數據一致性、性能和可擴展性方面的需求,以確保在縱向可擴展數據庫中維護可靠、準確的數據。第五部分讀寫負載均衡機制讀寫負載均衡機制

為了有效處理范式約束分區中的讀寫負載,需要采用讀寫負載均衡機制。常見的讀寫負載均衡機制包括:

主從復制

主從復制是一種常用的方式,其中一個節點(主節點)處理寫操作,而其他節點(從節點)處理讀操作。主節點將所有修改復制到從節點,從而保持數據一致性。這種方法提供了高可用性和可擴展性,因為從節點可以擴展以處理更大的讀負載。

讀寫分離

讀寫分離是一種機制,其中指定某些節點僅處理讀操作,而其他節點僅處理寫操作。這有助于隔離讀寫操作,避免讀操作與寫操作競爭資源。讀寫分離通常與主從復制結合使用,其中主節點處理寫操作,而從節點處理讀操作。

混合分片

混合分片是一種分片策略,其中表根據不同的鍵列進行分片,以優化讀寫性能。例如,可以根據主鍵分片讀操作,而根據外鍵分片寫操作。這有助于將讀寫操作分配到不同的分片,從而提高并發性和可擴展性。

哈希分片

哈希分片是一種分片策略,其中表根據哈希函數將數據分布到不同分片上。對于讀操作,可以將查詢路由到特定分片,從而消除分片之間的數據查找。對于寫操作,哈希分片可以通過將所有寫操作定向到相同的分片來提供數據一致性。

分區鍵

分區鍵是一種用于將數據分布到不同分片上的鍵列。選擇合適的分區鍵對于讀寫負載均衡至關重要。理想的分區鍵應該是經常寫入的屬性,以確保將寫操作均勻分布到所有分片中。這有助于避免熱點分片,其中某些分片處理不成比例的寫操作負載。

沖突檢測和解決

在讀寫負載均衡機制中,可能發生沖突,當多個客戶端嘗試同時寫入同一行時。沖突檢測和解決機制旨在檢測和解決這些沖突,以維護數據一致性。常見的沖突檢測和解決機制包括:

*樂觀并發控制(OCC):OCC允許并發寫入,但如果寫入發生沖突,則會引發異常并回滾事務。

*悲觀并發控制(PCC):PCC在寫入操作期間獲取排他鎖,以防止其他客戶端寫入同一行。

負載監測和管理

為了確保讀寫負載均衡機制的有效性,至關重要的是監測和管理負載。這包括:

*負載監測:監測每個分片上的讀寫負載,以識別任何熱點分片和瓶頸。

*負載管理:根據需要調整分片策略、分區鍵和沖突處理機制,以優化負載分布和性能。

通過實施有效的讀寫負載均衡機制,范式約束分區數據庫可以有效地處理高并發讀寫負載,同時保持數據一致性和可擴展性。第六部分分區邊界確定算法分區邊界確定算法

分區邊界確定算法是一種用于確定縱向可擴展數據庫中分區邊界的過程。其目標是將數據均勻分布在不同分區中,以最大限度地提高查詢性能和可擴展性。

算法步驟

1.確定分區鍵:

首先,需要確定將用于對數據進行分區的鍵。分區鍵應是數據中唯一且分布均勻的屬性。

2.計算分區的數量:

根據數據大小、查詢模式和所需的性能水平,確定所需的最小分區數量。

3.創建分區邊界:

對于每個分區,算法計算其邊界值。邊界值是將數據分配到該分區和相鄰分區的分界點。

4.將數據分配到分區:

根據數據的分區鍵值,將數據分配到相應的分區中。

分區邊界確定方法

等寬分區:

將數據范圍均勻劃分為等寬的分區,每個分區包含相同數量的數據。這是最簡單的分區方法,但它可能導致某些分區的數據分布不均勻。

哈希分區:

將數據根據其分區鍵的哈希值分配到分區。這種方法可確保數據均勻分布,但如果哈希函數不均勻,可能會出現數據傾斜。

范圍分區:

將數據范圍劃分為離散的范圍,每個分區包含特定范圍內的值。這種方法在數據分布不均勻的情況下非常有效。

復合分區:

將多種分區方法組合起來。例如,可以將數據首先按一個鍵進行等寬分區,然后按另一個鍵進行哈希分區。

分區邊界調整

隨著數據量的增加或更新,分區邊界需要定期進行調整。這可以通過以下方法實現:

動態重新分區:

在線調整分區邊界,以保持數據在分區中均勻分布。

手動重新分區:

定期離線重新計算分區邊界,并對數據進行重新分區。

優化分區邊界的考慮因素

數據分布:

考慮數據在分區鍵上的分布,以創建平衡的分區。

工作負載模式:

針對常見查詢模式優化分區邊界,以提高性能。

數據增長:

考慮到數據增長趨勢,為未來增長留出空間。

分區管理開銷:

平衡分區邊界確定和維護的開銷與性能提升之間的權衡。第七部分故障轉移與災難恢復關鍵詞關鍵要點故障轉移

1.自動將故障工作負載轉移到備用服務器,確保業務連續性。

2.利用復制機制和心跳檢測,實時監測系統狀態,及時發現故障節點。

3.采用多種故障轉移策略,如同步、異步或半同步復制,滿足不同的性能和數據一致性要求。

災難恢復

故障轉移與災難恢復

在縱向可擴展數據庫中,故障轉移和災難恢復對于確保數據完整性和業務連續性至關重要。范式約束分區為實現故障轉移和災難恢復提供了以下優勢:

容錯性

*分區允許在單個分區發生故障或數據丟失的情況下繼續操作。

*當一個分區不可用時,其他分區可以繼續處理查詢和更新。

高可用性

*通過在多個服務器或數據中心之間分區數據,可以實現高可用性。

*如果一個數據中心發生故障,另一個數據中心可以接管,從而最小化停機時間。

數據恢復

*分區簡化了數據恢復,因為只有受影響的分區需要恢復,而不是整個數據庫。

*通過從其他分區復制數據,可以快速恢復丟失的數據。

故障轉移

故障轉移是指在發生故障或中斷時將數據庫操作從一個服務器或數據中心轉移到另一個。在范式約束分區中,故障轉移通常涉及以下步驟:

1.故障檢測:系統檢測到服務器或數據中心的故障。

2.分區鎖定:受影響的分區被鎖定,以防止數據損壞。

3.故障分區轉移:故障分區的數據被復制到一個備用分區。

4.負載重新平衡:備用分區接收故障分區的查詢和更新請求。

災難恢復

災難恢復涉及在發生災難性事件(例如自然災害或基礎設施故障)后恢復數據庫操作。在范式約束分區中,災難恢復通常涉及以下步驟:

1.數據恢復:受影響的分區從備份或其他可用來源恢復。

2.分區重建:重建受影響的分區,包括將恢復的數據加載到其中。

3.負載重新平衡:重新分配受影響分區的查詢和更新請求到其他分區。

范式約束分區中故障轉移和災難恢復的最佳實踐

為了確保故障轉移和災難恢復的有效性,請考慮以下最佳實踐:

*冗余:在多個服務器或數據中心之間復制分區,以提供冗余和容錯性。

*自動化:自動化故障轉移和災難恢復過程,以減少響應時間和人為錯誤。

*測試:定期測試故障轉移和災難恢復計劃,以確保它們正常運行。

*監控:密切監控數據庫和基礎設施,以識別潛在問題并采取預防措施。

*災難恢復計劃:制定一個全面的災難恢復計劃,包括故障轉移程序、數據恢復策略和恢復時間目標。

通過遵循這些最佳實踐,組織可以最大程度地減少范式約束分區數據庫中故障轉移和災難恢復期間的停機時間和數據丟失的風險。第八部分數據管理優化方案關鍵詞關鍵要點主題名稱:存儲技術對分區數據管理的影響

1.固態硬盤(SSD):高讀寫速度和低延遲,適合需要頻繁訪問熱點數據的分區。

2.分布式文件系統:將數據跨多個服務器節點分布,增強可擴展性和彈性。

3.對象存儲:提供無限擴展、低成本和持久性的存儲,適合歸檔和分析分區。

主題名稱:索引優化

數據管理優化方案:范式約束分區

引入

范式約束分區是一種數據管理優化方案,它將數據表根據某些規范對其進行分區,以提高性能和可伸縮性。在縱向可擴展數據庫中,此技術尤其有用,因為這些數據庫通常具有大量的行和列。

原理

范式約束分區涉及將表中的數據分成多個分區,每個分區都包含滿足特定規范的行。例如,可以將一個包含客戶數據的表根據客戶所在國家/地區進行分區。此分區確保特定國家/地區的所有客戶數據都存儲在同一個分區中。

優勢

范式約束分區提供了以下優勢:

*性能優化:通過將數據分區存儲在物理上分離的節點上,可以并行查詢和更新數據,從而提高性能。

*可伸縮性增強:通過水平添加更多節點,可以輕松擴展分區表,以滿足不斷增長的數據需求。

*數據隔離:將數據分區存儲在不同的節點上可以提高數據安全性和隔離性,因為對一個分區的影響不會影響其他分區。

*查詢優化:通過將查詢限制在特定分區上,可以顯著提高查詢性能,尤其是在大表上。

*數據管理簡化:分區使數據管理任務(例如備份和恢復)變得更加容易,因為可以獨立管理每個分區。

實施

實施范式約束分區通常涉及以下步驟:

1.確定分區依據:確定用于對表進行分區的規范或約束。

2.創建分區表:使用適當的SQL語句創建分區表。

3.分配數據到分區:將數據插入到表中時,系統會自動將其分配到適當的分區。

4.管理分區:監控分區使用情況并根據需要添加或刪除分區。

最佳實踐

在實施范式約束分區時,考慮以下最佳實踐:

*選擇適當的分區依據,以確保數據均勻分布在分區中。

*避免過度分區,因為這會增加管理復雜性。

*監控分區使用情況并根據需要調整分區策略。

*利用索引來進一步提高查詢性能。

*考慮使用聯合分區技術來增強可伸縮性。

用例

范式約束分區在各種應用程序中都有許多用例,包括:

*電子商務網站上的客戶數據分區

*社交媒體平臺上的用戶數據分區

*金融機構上的交易數據分區

*物聯網設備上的傳感器數據分區

結論

范式約束分區是一種強大的數據管理優化方案,它可以顯著提高縱向可擴展數據庫的性能、可伸縮性和數據隔離性。通過遵循最佳實踐并仔細考慮分區策略,組織可以充分利用此技術帶來的好處。關鍵詞關鍵要點范式約束分區概念

關鍵詞關鍵要點主題名稱:范式約束

關鍵要點:

1.范式約束旨在確保數據庫中的數據完整性,防止數據冗余和異常。

2.范式根據數據依賴關系對表進行歸一化,分為第一范式(1NF)、第二范式(2NF)、第三范式(3NF)和第四范式(4NF)。

3.分庫分表過程中,需要考慮范式約束,以保證分庫分表后的數據一致性和完整性。

主題名稱:水平分庫分表

關鍵要點:

1.水平分庫分表是指將數據表按照某一字段或字段組合進行水平拆分,分發到不同的數據庫。

2.水平分庫分表可以有效解決數據量過大的問題,提高數據的并發訪問效率。

3.在水平分庫分表時,需要根據數據訪問模式和業務需求進行合理的分表策略設計。

主題名稱:垂直分庫分表

關鍵要點:

1.垂直分庫分表是指將數據表按照字段或字段組合進行垂直拆分,分發到不同的數據庫。

2.垂直分庫分表可以優化數據訪問,減少數據冗余,提高數據的查詢性能。

3.在垂直分庫分表時,需要考慮業務邏輯和數據訪問模式,制定合理的垂直分表規則。

主題名稱:分庫分表中的數據一致性

關鍵要點:

1.分庫分表后,需要保證不同庫、表之間的數據一致性,防止數據不一致。

2.可通過兩階段提交、分布式事務等機制來保證分庫分表后的數據一致性。

3.在設計分庫分表策略時,應充分考慮數據一致性問題,采用合理的解決方案。

主題名稱:分庫分表中的數據完整性

關鍵要點:

1.數據完整性是指確保數據庫中數據的正確性和準確性。

2.分庫分表后,需要考慮如何保證不同庫、表之間的數據完整性約束,例如主鍵約束、外鍵約束等。

3.可通過數據校驗、觸發器機制等方式來保證分庫分表后的數據完整性。

主題名稱:分布式事務中的范式約束

關鍵要點:

1.分布式事務涉及多個數據庫,需要保證各數據庫內以及數據庫之間的數據一致性和完整性。

2.在分布式事務中,應考慮范式約束對數據更新的影響,避免產生數據異常。

3.可通過事務協調器、兩階段提交等機制來保證分布式事務中的范式約束。關鍵詞關鍵要點讀寫負載均衡機制

關鍵要點:

1.根據數據訪問模式(讀或寫)將數據分區,并將每個分區分配給專門的服務器或服務器組。

2.讀負載通過負載均衡器或數據庫代理分散到讀取分區上,而寫入負載則定向到寫入分區。

3.這種方法確保了讀取和寫入操作的隔離,避免了讀寫沖突和性能下降。

數據分區策略

關鍵要點:

1.基于查詢模式對數據進行水平或垂直分區,以創建邏輯上獨立的數據塊。

2.水平分區將數據行分配到不同的分區,而垂直分區將數據列分配到不同的分區。

3.這些策略有助于優化查詢性能,因為它們允許數據庫并行處理查詢,減少鎖爭

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論