版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1/1基于NoSQL数据库的GET请求优化技术第一部分NoSQL数据库架构分析 2第二部分GET请求性能优化方法 4第三部分索引策略与优化 7第四部分分区与数据分布策略 9第五部分读写分离与复制集配置 12第六部分缓存技术与内存管理 15第七部分查询优化与执行计划 18第八部分监控与故障恢复策略 20
第一部分NoSQL数据库架构分析关键词关键要点【NOSQL数据库分类及特性】:
1.NoSQL数据库分类
NoSQL数据库按数据模型可分为文档数据库、列族数据库、键值数据库、宽列数据库、图形数据库等几大类。
2.NoSQL数据库特性
NoSQL数据库具有高扩展性、高性能、高可用性、数据模型灵活、成本低等特性。
3.NoSQL数据库应用场景
NoSQL数据库主要应用于大数据处理、社交网络、移动应用、物联网等领域。
【NOSQL数据库架构分析】:
#基于NoSQL数据库的GET请求优化技术
NoSQL数据库架构分析
#1.键值数据库
键值数据库是最简单的NoSQL数据库模型,它将数据存储在键值对中。键可以是任何数据类型,值也可以是任何数据类型。键值数据库非常适合存储简单的、非关系型的数据,例如,用户ID和用户姓名。
#2.列存储数据库
列存储数据库将数据存储在列中,而不是行中。这使得列存储数据库非常适合存储宽表,即具有大量列的表。列存储数据库还非常适合存储稀疏表,即具有大量空值的表。
#3.文档数据库
文档数据库将数据存储在文档中。文档可以是任何格式的数据,例如,JSON、XML或BSON。文档数据库非常适合存储复杂的数据,例如,产品信息或客户信息。
#4.图数据库
图数据库将数据存储在图中。图中的节点表示实体,边表示实体之间的关系。图数据库非常适合存储复杂的关系数据,例如,社交网络数据或供应链数据。
#NoSQL数据库的优缺点
优点:
*可扩展性:NoSQL数据库非常适合处理大规模的数据集。
*性能:NoSQL数据库通常比关系型数据库具有更高的性能。
*灵活性:NoSQL数据库可以轻松地添加或删除列,而不需要重新创建表。
*易于使用:NoSQL数据库通常比关系型数据库更容易使用和管理。
缺点:
*一致性:NoSQL数据库通常不提供与关系型数据库相同级别的ACID一致性。
*事务:NoSQL数据库通常不支持事务。
*查询:NoSQL数据库的查询功能通常不如关系型数据库强大。
#NoSQL数据库的应用场景
NoSQL数据库非常适合以下应用场景:
*大数据分析:NoSQL数据库可以轻松地处理大规模的数据集,非常适合用于大数据分析。
*实时数据处理:NoSQL数据库可以实时地处理数据,非常适合用于实时数据处理。
*社交网络:NoSQL数据库非常适合存储社交网络数据,例如,用户关系和用户帖子。
*电子商务:NoSQL数据库非常适合存储电子商务数据,例如,产品信息和订单信息。
*物联网:NoSQL数据库非常适合存储物联网数据,例如,传感器数据和设备位置数据。第二部分GET请求性能优化方法关键词关键要点【索引优化】:
1.索引是一种数据结构,可以快速查找数据。在NoSQL数据库中,索引通常是针对特定的字段创建的,例如,可以在用户表的用户名字段上创建索引。
2.索引可以显著提高GET请求的性能,因为数据库可以快速找到所需的数据。
3.在创建索引时,需要考虑索引的类型和大小。索引类型会影响索引的性能和存储空间。索引大小会影响数据库的整体性能。
【缓存】:
一、缓存技术
1.本地缓存:在应用服务器本地内存中存储经常访问的数据,当收到GET请求时,先从本地缓存中查找,如果找到,直接返回结果,如果找不到,再从数据库中查询。本地缓存可以显著提高GET请求的性能,特别是在数据经常被访问的情况下。
2.分布式缓存:除了本地缓存,还可以使用分布式缓存,如Redis或Memcached,将数据存储在多台服务器上。当收到GET请求时,先从分布式缓存中查找,如果找到,直接返回结果,如果找不到,再从数据库中查询。分布式缓存可以进一步提高GET请求的性能,特别是当数据被多个应用服务器访问时。
二、索引技术
1.哈希索引:哈希索引是一种快速查找数据的索引结构,它将数据记录的键值映射到一个哈希值,然后将哈希值存储在索引中。当进行GET请求时,可以使用哈希索引快速找到目标数据记录。哈希索引非常适合于等值查询。
2.B树索引:B树索引是一种平衡查找树,它将数据记录存储在叶子节点中,每个叶子节点都有一个指向其父节点的指针。当进行GET请求时,可以通过B树索引快速找到目标数据记录。B树索引非常适合于范围查询。
三、分库分表技术
1.分库:将数据存储在多个数据库服务器上,每个数据库服务器存储一部分数据。当进行GET请求时,先确定目标数据记录所在的分库,然后从该分库中查询数据。分库可以减轻单个数据库服务器的负载,提高GET请求的性能。
2.分表:将数据表拆分成多个子表,每个子表存储一部分数据。当进行GET请求时,先确定目标数据记录所在的子表,然后从该子表中查询数据。分表可以减少单个表的大小,提高GET请求的性能。
四、读写分离技术
1.主从复制:在主数据库服务器上进行写操作,在从数据库服务器上进行读操作。当进行GET请求时,直接从从数据库服务器中读取数据。主从复制可以减轻主数据库服务器的负载,提高GET请求的性能。
2.读写分离代理:在应用服务器和数据库服务器之间使用读写分离代理,将GET请求转发到从数据库服务器,将写请求转发到主数据库服务器。读写分离代理可以透明地实现读写分离,简化应用代码的开发。
五、CDN技术
1.内容分发网络(CDN)将数据缓存到多个边缘服务器上,当用户请求数据时,直接从最近的边缘服务器获取数据。CDN可以显著提高GET请求的性能,特别是在用户分布广泛的情况下。
六、优化查询语句
1.使用合适的数据类型:为数据字段选择合适的数据类型,可以提高查询效率。例如,对于整型数据,使用INT或BIGINT数据类型,而不是VARCHAR数据类型。
2.使用索引:为经常查询的数据字段创建索引,可以显著提高查询效率。
3.避免全表扫描:使用WHERE子句缩小查询范围,避免全表扫描。
4.使用连接查询:使用连接查询将多个表中的数据组合在一起,而不是使用多个子查询。
七、硬件优化
1.使用SSD:使用固态硬盘(SSD)作为数据库服务器的存储介质,可以显著提高GET请求的性能。SSD的读写速度比机械硬盘快很多。
2.增加内存:增加数据库服务器的内存容量,可以提高数据库的缓存能力,减少磁盘IO操作,从而提高GET请求的性能。
3.使用多核CPU:使用多核CPU的数据库服务器,可以同时处理多个查询,提高GET请求的性能。第三部分索引策略与优化关键词关键要点【索引策略与优化】
1.合理选择索引类型:根据实际业务需求和数据特点,选择合适的索引类型,如哈希索引、B树索引、位图索引等,以提高索引的查询效率。
2.索引粒度控制:根据实际业务需求,确定索引的粒度,避免过度索引或索引过细,以减少索引维护开销和提高查询性能。
3.索引过期管理:对索引进行过期时间管理,定期清理过期的索引,以避免索引膨胀和影响查询性能。
【索引维护策略】
一、索引策略与优化概述
在NoSQL数据库中,索引是用于快速检索数据的结构。索引可以显著提高查询性能,尤其是当查询涉及大量数据时。索引策略是指在NoSQL数据库中创建和使用索引的策略。索引优化是指对索引进行调整,以提高查询性能。
二、索引策略
1.索引创建策略
*选择合适的索引类型:NoSQL数据库通常支持多种索引类型,如哈希索引、B-树索引等。应根据数据特性和查询模式选择合适的索引类型。
*索引字段选择:应选择那些经常用于查询的字段作为索引字段。
*索引粒度:应根据数据量和查询模式确定索引的粒度。索引粒度越细,查询性能越好,但索引占用空间也越大。
*索引覆盖度:应尽量创建覆盖索引,即索引中包含查询所需的所有字段。这样可以避免查询时回表操作,提高查询性能。
2.索引使用策略
*合理使用索引:应避免在不需要索引的查询中使用索引。不必要的索引会降低查询性能。
*索引合并:如果多个查询使用相同的索引,可以将这些查询合并成一个查询,以减少索引的使用次数。
*索引失效:如果索引字段的值经常变化,则索引可能会失效。应定期检查索引的有效性,并及时重建失效的索引。
三、索引优化
1.索引调整
*索引合并:如果多个索引覆盖了相同的字段,可以将这些索引合并成一个索引。索引合并可以减少索引的维护成本,并提高查询性能。
*索引下推:索引下推是指将查询操作推送到索引中执行。索引下推可以减少查询时的数据访问次数,从而提高查询性能。
*索引裁剪:索引裁剪是指在索引扫描时只返回必需的字段。索引裁剪可以减少数据传输量,从而提高查询性能。
2.索引维护
*索引重建:如果索引失效或索引统计信息不准确,应重建索引。索引重建可以提高查询性能。
*索引监控:应定期监控索引的使用情况,并及时调整索引策略。索引监控可以帮助发现索引的性能问题,并及时采取措施进行优化。
四、索引优化最佳实践
*使用覆盖索引:覆盖索引可以避免查询时回表操作,从而提高查询性能。
*尽量使用索引下推:索引下推可以减少查询时的数据访问次数,从而提高查询性能。
*使用索引裁剪:索引裁剪可以减少数据传输量,从而提高查询性能。
*定期重建索引:如果索引失效或索引统计信息不准确,应重建索引。索引重建可以提高查询性能。
*定期监控索引:应定期监控索引的使用情况,并及时调整索引策略。索引监控可以帮助发现索引的性能问题,并及时采取措施进行优化。
五、总结
索引是NoSQL数据库中提高查询性能的重要技术。通过合理的选择索引策略和优化索引,可以显著提高查询性能。第四部分分区与数据分布策略关键词关键要点分区策略
1.哈希分区:将数据分布在不同的分区中,每个分区都由一个哈希函数决定。哈希分区可以均匀地分布数据,并减少热点问题。
2.范围分区:将数据分布在不同的分区中,每个分区都由一个范围决定。范围分区可以使数据更容易被查询和索引。
3.复合分区:将数据分布在不同的分区中,每个分区都由多个字段决定。复合分区可以使数据更容易被查询和索引,并减少热点问题。
数据分布策略
1.数据复制:将数据复制到多个分区或节点上,以提高数据可用性和容错性。数据复制可以使数据更容易被查询和索引,并减少热点问题。
2.数据分片:将数据分成多个较小的块,并将其分布在不同的分区或节点上。数据分片可以提高数据查询和索引的效率,并减少热点问题。
3.数据压缩:将数据压缩以减少其大小,从而提高数据查询和索引的效率,并减少热点问题。数据压缩可以使数据更容易被存储,并减少存储成本。一、分区策略
分区是将数据分布到多个节点上的过程,以便每个节点只负责一部分数据。分区策略决定了数据在各个节点上的分布方式,进而影响了GET请求的性能。
1.哈希分区
哈希分区是将数据根据其键值进行哈希计算,然后将哈希值映射到相应的节点上。哈希分区可以确保数据均匀分布到各个节点上,并且可以保证相同键值的数据始终存储在同一个节点上,从而提高GET请求的命中率。
2.范围分区
范围分区是将数据根据其键值的范围进行划分,然后将每个范围的数据分配给相应的节点。范围分区可以确保数据在各个节点上分布均匀,并且可以保证相邻键值的数据存储在同一个节点上,从而提高GET请求的局部性。
3.复合分区
复合分区是将哈希分区和范围分区结合起来使用的一种分区策略。复合分区可以同时利用哈希分区的均匀分布性和范围分区的局部性,从而进一步提高GET请求的性能。
二、数据分布策略
数据分布策略决定了数据在各个节点上的存储方式。数据分布策略的选择与分区的选择密切相关,不同的数据分布策略适用于不同的分区策略。
1.主副本复制
主副本复制是一种简单的数据分布策略,它将数据存储在主节点上,并在其他节点上存储副本。主节点负责处理写请求,副本节点负责处理读请求。主副本复制可以提供较高的可用性和可靠性,但可能会导致写请求的性能下降。
2.一致性哈希
一致性哈希是一种分布式哈希表(DHT)算法,它将数据存储在环形结构中。每个节点负责环中的一段范围,数据根据其键值进行哈希计算,然后存储在负责该哈希值的节点上。一致性哈希可以提供较高的数据均匀性和可用性,并且可以保证相同键值的数据始终存储在同一个节点上,从而提高GET请求的命中率。
3.动态负载均衡
动态负载均衡是一种自动调整数据分布策略的机制。动态负载均衡会根据节点的负载情况,将数据从负载较高的节点迁移到负载较低的节点上。动态负载均衡可以确保数据在各个节点上分布均匀,并且可以提高GET请求的性能。
三、分区与数据分布策略的选择
分区与数据分布策略的选择应根据实际应用的需求来确定。以下是一些选择建议:
1.对于写请求较多的应用,可以选择主副本复制作为数据分布策略,以提高写请求的性能。
2.对于读请求较多的应用,可以选择一致性哈希作为数据分布策略,以提高读请求的命中率。
3.对于数据量较大的应用,可以选择动态负载均衡作为数据分布策略,以确保数据在各个节点上分布均匀。
4.对于需要高可用性和可靠性的应用,可以选择主副本复制和一致性哈希相结合的数据分布策略。
分区与数据分布策略是NoSQL数据库性能优化的重要因素。通过合理地选择分区策略和数据分布策略,可以提高GET请求的性能,从而提高NoSQL数据库的整体性能。第五部分读写分离与复制集配置关键词关键要点【读写分离配置】:
1.将数据库服务器分为主库和从库,主库负责写入数据,从库负责读取数据。
2.当客户端发出GET请求时,直接路由到从库上进行读取操作,无需再经过主库。
3.这种架构可以有效地缓解主库的压力,提高数据库的整体吞吐量。
【副本集配置】:
读写分离与复制集配置
读写分离与复制集配置是NoSQL数据库常用的优化技术,可以有效提高数据库的并发性和读写性能。
#读写分离
读写分离是指将数据库的读写操作分开,分别由不同的数据库服务器处理。读操作由读服务器处理,写操作由写服务器处理。这样可以避免读写操作相互影响,提高数据库的并发性和读写性能。
读写分离可以采用以下两种方式实现:
*物理读写分离:将数据库的读写操作分开,分别部署在不同的服务器上。这种方式可以完全隔离读写操作,避免相互影响,但需要额外的硬件成本。
*逻辑读写分离:将数据库的读写操作分开,但部署在同一台服务器上。这种方式可以节省硬件成本,但读写操作可能会相互影响。
#复制集配置
复制集配置是指将数据库的数据复制到多个服务器上,形成一个复制集。当主服务器发生故障时,备用服务器可以接替主服务器继续提供服务,保证数据库的高可用性。
复制集配置可以采用以下几种方式实现:
*主从复制:将数据库的数据从主服务器复制到多个备用服务器上。当主服务器发生故障时,备用服务器可以接替主服务器继续提供服务。
*多主复制:将数据库的数据从多个主服务器复制到多个备用服务器上。当某个主服务器发生故障时,备用服务器可以接替该主服务器继续提供服务。
*环形复制:将数据库的数据从一个服务器复制到另一个服务器,形成一个环形结构。当某个服务器发生故障时,数据可以从相邻的服务器复制过来,保证数据的完整性。
#读写分离与复制集配置的优缺点
读写分离的优点:
*提高数据库的并发性和读写性能。
*降低数据库的负载。
*提高数据库的安全性。
读写分离的缺点:
*需要额外的硬件成本(物理读写分离)。
*读写操作可能会相互影响(逻辑读写分离)。
复制集配置的优点:
*提高数据库的高可用性。
*提高数据库的读写性能。
*降低数据库的负载。
复制集配置的缺点:
*需要额外的硬件成本。
*数据复制可能会导致数据不一致。
#读写分离与复制集配置的应用场景
读写分离和复制集配置可以应用于以下场景:
*高并发场景:读写分离可以提高数据库的并发性和读写性能,适用于高并发场景。
*高可用场景:复制集配置可以提高数据库的高可用性,适用于高可用场景。
*数据备份场景:复制集配置可以作为数据备份的手段,保证数据的安全性。
#总结
读写分离与复制集配置是NoSQL数据库常用的优化技术,可以有效提高数据库的并发性和读写性能,保证数据库的高可用性。第六部分缓存技术与内存管理关键词关键要点【缓存技术】:
1.缓存:
采用缓存技术可以将频繁访问的数据存储在内存中,当后续请求再次访问这些数据时,可以快速从内存中获取,从而减少对数据库的访问次数,提高查询效率。
2.缓存管理:
缓存管理是指对缓存中的数据进行管理,包括缓存数据的存储、替换和淘汰等操作,以确保缓存中的数据是最新的、最经常被访问的。
3.缓存策略:
缓存策略是指选择合适的缓存算法,以决定哪些数据应该被缓存,以及当缓存空间不足时应该淘汰哪些数据。
【内存管理】:
缓存技术
缓存技术是一种将经常访问的数据存储在内存中,以减少对后端数据库的访问次数,从而提高性能的技术。在NoSQL数据库中,缓存技术通常用于存储热点数据,即访问频率较高的数据。
内存管理
内存管理是指操作系统管理计算机内存资源的方式。在NoSQL数据库中,内存管理对于提高性能非常重要,因为NoSQL数据库通常是内存密集型的,需要大量的内存空间来存储数据和索引。
缓存技术与内存管理的结合
缓存技术和内存管理可以结合使用,以进一步提高NoSQL数据库的性能。
1.内存缓存
内存缓存是将热点数据存储在内存中,以便快速访问。内存缓存可以是独立的缓存系统,也可以是NoSQL数据库本身提供的缓存功能。
2.磁盘缓存
磁盘缓存是将不经常访问的数据存储在磁盘上,以节省内存空间。当需要访问这些数据时,可以从磁盘缓存中读取,而无需访问后端数据库。
3.预取技术
预取技术是将可能被访问的数据提前加载到内存中,以便在需要时可以快速访问。预取技术可以提高NoSQL数据库的性能,尤其是对于那些访问模式比较规律的应用。
4.内存管理技术
内存管理技术可以帮助NoSQL数据库更好地利用内存空间,并减少内存碎片。常用的内存管理技术包括虚拟内存技术、分页技术和分段技术。
缓存技术与内存管理的优化
1.缓存大小的优化
缓存大小需要根据访问模式和内存空间大小来确定。缓存大小过大会导致内存浪费,缓存大小过小则会导致频繁访问后端数据库,从而降低性能。
2.缓存淘汰策略的优化
缓存淘汰策略是指当缓存空间不足时,如何选择要淘汰的数据。常用的缓存淘汰策略包括最近最少使用(LRU)、最近最不经常使用(LFU)和随机淘汰等。
3.预取技术的优化
预取技术的优化需要根据访问模式和数据大小来确定。预取的数据量过大会导致内存浪费,预取的数据量过小则会导致预取效果不明显。
4.内存管理技术的优化
内存管理技术的优化需要根据NoSQL数据库的访问模式和内存使用情况来确定。不同的内存管理技术适合不同的场景。
5.监控和调整
缓存技术和内存管理的优化是一个持续的过程。需要根据NoSQL数据库的运行情况对缓存大小、缓存淘汰策略、预取技术和内存管理技术进行监控和调整,以确保NoSQL数据库始终保持最佳性能。第七部分查询优化与执行计划关键词关键要点【哈希索引】:
1.哈希索引是一种数据结构,它将数据值映射到一个哈希值,然后将哈希值存储在索引中。
2.当需要查找数据时,查询引擎可以使用哈希索引快速找到哈希值对应的值,然后从数据存储中检索数据。
3.哈希索引对于范围查询和等值查询非常高效,但对于排序查询和聚合查询则不太高效。
【二级索引】:
查询优化与执行计划
在NoSQL数据库中,查询优化尤为重要,因为它可以极大地提高查询性能。NoSQL数据库通常使用不同的查询引擎,因此优化策略也会有所不同。
#查询优化策略
1.索引优化
NoSQL数据库中索引的使用与关系型数据库类似。索引可以帮助查询引擎快速定位数据,从而提高查询速度。在NoSQL数据库中,索引通常是二级索引,这意味着索引数据与实际数据是分离的。
2.数据建模优化
NoSQL数据库中的数据建模方式对查询性能有很大的影响。合理的数据建模可以减少查询的复杂度,从而提高查询速度。例如,在MongoDB中,可以使用嵌入式文档或引用文档来表示复杂的数据结构。
3.查询语句优化
NoSQL数据库的查询语句与关系型数据库的查询语句有很大不同。NoSQL数据库通常使用非结构化查询语言,例如JSON查询语言或查询命令语言。在编写NoSQL数据库查询语句时,需要注意以下几点:
*使用正确的查询运算符。NoSQL数据库的查询运算符与关系型数据库的查询运算符不同。
*使用正确的查询语法。NoSQL数据库的查询语法与关系型数据库的查询语法不同。
*使用正确的查询参数。NoSQL数据库的查询参数与关系型数据库的查询参数不同。
4.查询执行计划优化
查询执行计划是指查询引擎在执行查询时所采取的步骤。查询执行计划的优化可以极大地提高查询速度。在NoSQL数据库中,查询执行计划通常是自动生成的。但是,在某些情况下,可以手动优化查询执行计划。例如,在MongoDB中,可以使用explain()方法查看查询执行计划。
#执行计划优化技术
1.查询并行化
查询并行化是指将查询任务分解为多个子任务,然后由多个线程或进程同时执行这些子任务。查询并行化可以极大地提高查询速度,尤其是在处理大型数据集时。
2.查询缓存
查询缓存是指将查询结果存储在内存中,以便subsequent的查询可以从缓存中直接读取,而无需再次执行查询。查询缓存可以极大地提高查询速度,尤其是在查询结果经常被重复使用时。
3.延迟执行
延迟执行是指将查询的执行延迟到查询结果需要被使用时才执行。延迟执行可以极大地提高查询速度,尤其是在查询结果不需要立即被使用时。
4.查询批处理
查询批处理是指将多个查询组合成一个查询来执行。查询批处理可以极大地提高查询速度,尤其是在多个查询需要访问相同的数据时。第八部分监控与故障恢复策略关键词关键要点【监控与故障恢复策略】:
1.实时监控:通过使用工具或框架(如Prometheus、Grafana、Zabbix等)对NoSQL数据库的各项指标(如请求延迟、错误率、可用性等)进行实时监
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030全球初级冲击式破碎机行业调研及趋势分析报告
- 座次礼仪健康管理系施怡宁讲解
- 2025个人借款楼房抵押合同范本
- 2025标准材料采购合同范本
- 打灰工班组承包合同
- 生活污水处理合同书范本年
- 墙面广告租赁合同
- 提高人际沟通与协调的技巧
- 建筑工程施工总承包合同
- 活动板房工程合同范本
- 诫子书教案一等奖诫子书教案
- 《民航服务沟通技巧》教案第16课民航服务人员平行沟通的技巧
- 深圳市物业专项维修资金管理系统操作手册(电子票据)
- 2023年铁岭卫生职业学院高职单招(数学)试题库含答案解析
- 10000中国普通人名大全
- 起重机械安装吊装危险源辨识、风险评价表
- 华北理工儿童口腔医学教案06儿童咬合诱导
- 中国建筑项目管理表格
- 高一3班第一次月考总结班会课件
- 公共政策分析导论教学课件汇总完整版电子教案
- 我国油菜生产机械化技术(-119)
评论
0/150
提交评论