订单分库分表

一、引言

在当今互联网时代,随着电商、金融等行业的快速发展,订单数量呈爆炸式增长。传统的单一数据库存储订单信息的方式面临着巨大的挑战,如数据存储容量有限、查询性能下降、数据备份和恢复困难等。为了解决这些问题,分库分表技术应运而生。本文将详细介绍订单信息分库分表的相关知识,包括其原理、方法、实际应用以及注意事项等。

二、订单信息分库分表的重要性

(一)解决数据存储容量问题

随着业务的不断发展,订单数量不断增加,单一数据库的存储容量很快就会达到上限。通过分库分表,可以将订单数据分散存储在多个数据库和表中,从而有效地解决数据存储容量问题。

(二)提高查询性能

当订单数据量庞大时,对订单信息的查询会变得非常缓慢。分库分表可以将数据分散到多个数据库和表中,减少每个数据库和表中的数据量,从而提高查询性能。同时,可以根据查询条件进行合理的分库分表设计,使得查询能够更快地定位到所需的数据。

(三)便于数据备份和恢复

对于庞大的订单数据,备份和恢复是一项非常耗时的任务。通过分库分表,可以将数据分散到多个数据库和表中,使得备份和恢复可以并行进行,从而大大缩短备份和恢复的时间。同时,分库分表也可以降低单个数据库或表的故障对整个系统的影响,提高系统的可靠性。

三、订单信息分库分表的原理

(一)分库原理

分库是将订单数据分散存储在多个数据库中。通常可以根据业务需求、数据量大小、访问模式等因素进行分库。例如,可以按照订单的时间范围、业务类型、地域等进行分库。分库可以有效地分散数据存储压力,提高系统的可扩展性和性能。

(二)分表原理

分表是将订单数据分散存储在多个表中。通常可以根据订单的属性、业务规则等因素进行分表。例如,可以按照订单的状态、支付方式、用户 ID 等进行分表。分表可以有效地减少单个表中的数据量,提高查询性能和数据管理的灵活性。

(三)分库分表的实现方式

  1. 垂直分库分表
    • 垂直分库是按照业务模块将一个数据库拆分成多个数据库,每个数据库存储不同业务模块的数据。例如,可以将订单数据库拆分成订单库、用户库、商品库等。垂直分表是按照表的字段将一个表拆分成多个表,每个表存储不同字段的数据。例如,可以将订单表拆分成订单基本信息表、订单商品信息表等。
    • 垂直分库分表的优点是可以将不同业务模块的数据分离,提高数据的独立性和可维护性。同时,也可以根据不同业务模块的特点进行针对性的优化,提高系统的性能。缺点是可能会增加系统的复杂度,需要进行跨库跨表的查询和事务处理。
  2. 水平分库分表
    • 水平分库是将一个数据库中的数据按照一定的规则分散存储到多个数据库中。例如,可以按照订单的 ID 进行哈希分库,将订单数据分散存储到多个数据库中。水平分表是将一个表中的数据按照一定的规则分散存储到多个表中。例如,可以按照订单的创建时间进行范围分表,将订单数据分散存储到多个表中。
    • 水平分库分表的优点是可以有效地分散数据存储压力,提高系统的可扩展性和性能。同时,也可以根据数据的特点进行合理的分布,提高查询性能。缺点是需要进行数据的路由和合并,增加了系统的复杂度。

四、订单信息分库分表的方法

(一)确定分库分表策略

  1. 分析业务需求
    • 了解业务的特点、数据量大小、访问模式等因素,确定分库分表的必要性和可行性。
    • 分析订单数据的属性和关系,确定分库分表的依据和规则。
  2. 选择分库分表方式
    • 根据业务需求和数据特点,选择垂直分库分表或水平分库分表方式。
    • 如果业务模块之间独立性较强,可以选择垂直分库分表方式;如果数据量较大且需要进行水平扩展,可以选择水平分库分表方式。
  3. 确定分库分表规则
    • 根据选择的分库分表方式,确定具体的分库分表规则。例如,如果选择水平分库分表方式,可以按照订单的 ID 进行哈希分库,按照订单的创建时间进行范围分表。

(二)设计数据库架构

  1. 数据库选型
    • 根据业务需求和数据特点,选择合适的数据库产品。例如,如果需要支持高并发读写,可以选择 MySQL、PostgreSQL 等关系型数据库;如果需要支持海量数据存储和高可扩展性,可以选择 MongoDB、Cassandra 等 NoSQL 数据库。
  2. 数据库部署
    • 根据分库分表策略,确定数据库的部署方式。可以采用分布式部署方式,将多个数据库部署在不同的服务器上,提高系统的可扩展性和性能。
  3. 数据库连接管理
    • 设计合理的数据库连接管理机制,确保系统能够高效地连接和访问多个数据库。可以采用数据库连接池技术,提高数据库连接的复用率,减少连接创建和销毁的开销。

(三)实现数据路由和合并

  1. 数据路由
    • 实现数据路由功能,确保系统能够根据分库分表规则将数据正确地存储到相应的数据库和表中。可以采用哈希算法、范围算法等方式进行数据路由。
    • 对于查询操作,需要根据查询条件进行数据路由,定位到相应的数据库和表中进行查询。可以采用索引、缓存等技术提高查询性能。
  2. 数据合并
    • 对于跨库跨表的查询操作,需要进行数据合并,将多个数据库和表中的数据合并成一个结果集返回给用户。可以采用分布式查询引擎、数据仓库等技术进行数据合并。
    • 在进行数据合并时,需要注意数据的一致性和完整性,避免出现数据重复、缺失等问题。

(四)进行数据迁移和同步

  1. 数据迁移
    • 如果已经存在大量的订单数据,需要进行数据迁移,将数据从原有的数据库和表中迁移到新的分库分表架构中。可以采用数据迁移工具、脚本等方式进行数据迁移。
    • 在进行数据迁移时,需要注意数据的一致性和完整性,避免出现数据丢失、错误等问题。同时,也需要考虑数据迁移的时间和成本,选择合适的迁移方式和时机。
  2. 数据同步
    • 在分库分表架构中,需要进行数据同步,确保多个数据库和表中的数据保持一致。可以采用数据同步工具、消息队列等方式进行数据同步。
    • 在进行数据同步时,需要注意数据的实时性和准确性,避免出现数据延迟、错误等问题。同时,也需要考虑数据同步的性能和资源消耗,选择合适的同步方式和策略。

五、订单信息分库分表的实际应用

(一)电商平台订单系统

  1. 业务需求分析
    • 电商平台的订单系统通常需要处理大量的订单数据,包括订单的创建、查询、修改、删除等操作。同时,订单系统还需要与其他系统进行交互,如用户系统、商品系统、支付系统等。
    • 订单数据的特点是数据量大、增长速度快、访问频繁。因此,需要采用分库分表技术来提高订单系统的性能和可扩展性。
  2. 分库分表策略
    • 采用水平分库分表方式,按照订单的 ID 进行哈希分库,将订单数据分散存储到多个数据库中。按照订单的创建时间进行范围分表,将订单数据分散存储到多个表中。
    • 对于查询操作,可以根据订单的 ID、用户 ID、创建时间等条件进行数据路由,定位到相应的数据库和表中进行查询。对于跨库跨表的查询操作,可以采用分布式查询引擎进行数据合并。
  3. 数据库架构设计
    • 选择 MySQL 作为数据库产品,采用分布式部署方式,将多个数据库部署在不同的服务器上。使用数据库连接池技术管理数据库连接,提高连接的复用率。
    • 设计订单表结构,包括订单基本信息表、订单商品信息表、订单支付信息表等。根据分库分表规则,将订单数据存储到相应的数据库和表中。
  4. 数据迁移和同步
    • 使用数据迁移工具将原有的订单数据迁移到新的分库分表架构中。在数据迁移过程中,需要注意数据的一致性和完整性,避免出现数据丢失、错误等问题。
    • 采用消息队列进行数据同步,当订单数据发生变化时,将变化的数据发送到消息队列中,由其他系统进行消费和处理,确保多个系统中的订单数据保持一致。

(二)金融交易系统

  1. 业务需求分析
    • 金融交易系统通常需要处理大量的交易订单数据,包括交易的创建、查询、修改、删除等操作。同时,交易系统还需要保证数据的安全性和准确性,以及高可用性和高性能。
    • 交易订单数据的特点是数据量大、增长速度快、价值高。因此,需要采用分库分表技术来提高交易系统的性能和可扩展性,同时保证数据的安全性和准确性。
  2. 分库分表策略
    • 采用垂直分库分表方式,将交易系统拆分成多个数据库,每个数据库存储不同业务模块的数据。例如,可以将交易数据库拆分成交易订单库、用户信息库、资金账户库等。
    • 对于交易订单库,可以按照交易的类型、时间范围等进行水平分表,将交易订单数据分散存储到多个表中。对于查询操作,可以根据交易的 ID、用户 ID、交易类型等条件进行数据路由,定位到相应的数据库和表中进行查询。
  3. 数据库架构设计
    • 选择 Oracle 作为数据库产品,采用分布式部署方式,将多个数据库部署在不同的服务器上。使用数据库连接池技术管理数据库连接,提高连接的复用率。
    • 设计交易订单表结构,包括交易订单基本信息表、交易订单明细信息表、交易订单状态表等。根据分库分表规则,将交易订单数据存储到相应的数据库和表中。
  4. 数据迁移和同步
    • 使用数据迁移脚本将原有的交易订单数据迁移到新的分库分表架构中。在数据迁移过程中,需要注意数据的一致性和完整性,避免出现数据丢失、错误等问题。
    • 采用数据库复制技术进行数据同步,将交易订单数据实时同步到备份数据库中,保证数据的安全性和可用性。同时,也可以采用消息队列进行数据同步,将交易订单数据发送到其他系统进行处理,确保多个系统中的交易订单数据保持一致。

六、订单信息分库分表的挑战与解决方案

(一)数据一致性问题

  1. 问题描述
    • 在分库分表架构中,由于数据分散存储在多个数据库和表中,可能会出现数据不一致的问题。例如,在进行数据更新操作时,如果部分数据库或表更新成功,而部分数据库或表更新失败,就会导致数据不一致。
  2. 解决方案
    • 采用分布式事务处理机制,确保多个数据库和表中的数据更新操作能够同时成功或同时失败。例如,可以使用两阶段提交协议(2PC)、三阶段提交协议(3PC)等分布式事务处理机制。
    • 采用数据同步工具或消息队列进行数据同步,确保多个数据库和表中的数据保持一致。在进行数据更新操作时,可以将更新的数据发送到消息队列中,由其他系统进行消费和处理,确保多个系统中的数据保持一致。

(二)数据路由问题

  1. 问题描述
    • 在分库分表架构中,需要根据分库分表规则将数据正确地存储到相应的数据库和表中。如果数据路由出现问题,可能会导致数据存储错误或查询不到数据。
  2. 解决方案
    • 采用哈希算法、范围算法等方式进行数据路由,确保数据能够正确地存储到相应的数据库和表中。同时,也可以采用索引、缓存等技术提高数据路由的性能。
    • 对于查询操作,需要根据查询条件进行数据路由,定位到相应的数据库和表中进行查询。可以采用分布式查询引擎、数据仓库等技术进行数据合并,提高查询性能。

(三)跨库跨表查询问题

  1. 问题描述
    • 在分库分表架构中,跨库跨表查询操作比较复杂,需要进行数据合并和处理。如果跨库跨表查询性能低下,可能会影响系统的性能和用户体验。
  2. 解决方案
    • 采用分布式查询引擎、数据仓库等技术进行跨库跨表查询,提高查询性能。同时,也可以采用索引、缓存等技术提高查询性能。
    • 对于复杂的跨库跨表查询操作,可以考虑将数据进行预聚合或预计算,减少查询时的数据处理量。例如,可以使用数据仓库进行数据预聚合,将查询结果缓存到内存中,提高查询性能。

(四)数据库连接管理问题

  1. 问题描述
    • 在分库分表架构中,需要管理多个数据库连接,如果连接管理不当,可能会导致连接泄漏、连接过多等问题,影响系统的性能和稳定性。
  2. 解决方案
    • 采用数据库连接池技术管理数据库连接,提高连接的复用率,减少连接创建和销毁的开销。同时,也可以采用连接池监控工具对连接池进行监控和管理,及时发现和解决连接泄漏、连接过多等问题。
    • 对于分布式数据库架构,可以采用分布式数据库连接管理工具,如 Sharding-JDBC、MyCat 等,对多个数据库连接进行统一管理和调度,提高系统的性能和可扩展性。

七、订单信息分库分表的性能优化

(一)索引优化

  1. 合理创建索引
    • 根据查询条件和业务需求,合理创建索引可以提高查询性能。例如,可以在订单的 ID、用户 ID、创建时间等字段上创建索引。
    • 避免创建过多的索引,因为过多的索引会占用大量的存储空间,并且会影响数据的插入、更新和删除操作的性能。
  2. 索引维护
    • 定期对索引进行维护,如重建索引、优化索引等,可以提高索引的性能。同时,也可以根据业务需求和数据变化情况,及时调整索引的创建和使用策略。

(二)查询优化

  1. 避免全表扫描
    • 在进行查询操作时,尽量避免全表扫描,因为全表扫描会消耗大量的系统资源,并且查询性能低下。可以通过合理创建索引、使用条件过滤等方式避免全表扫描。
  2. 优化查询语句
    • 优化查询语句可以提高查询性能。例如,可以避免使用复杂的查询语句、减少查询结果集的大小、使用分页查询等方式优化查询语句。
  3. 缓存查询结果
    • 对于频繁查询的数据,可以将查询结果缓存到内存中,提高查询性能。可以使用缓存框架如 Redis、Ehcache 等进行缓存。

(三)数据存储优化

  1. 选择合适的数据类型
    • 根据数据的特点和业务需求,选择合适的数据类型可以减少存储空间的占用,提高数据的存储和查询性能。例如,可以使用整数类型代替字符串类型存储数字数据。
  2. 压缩数据存储
    • 对于大量的数据,可以采用数据压缩技术减少存储空间的占用,提高数据的存储和查询性能。例如,可以使用数据库的压缩功能对数据进行压缩存储。

(四)数据库服务器优化

  1. 配置数据库参数
    • 根据业务需求和服务器硬件资源,合理配置数据库参数可以提高数据库的性能。例如,可以调整数据库的缓存大小、连接数、线程数等参数。
  2. 定期进行数据库优化
    • 定期对数据库进行优化,如清理无用数据、优化数据库结构、重建索引等,可以提高数据库的性能和稳定性。

八、实际案例分析

(一)案例背景

某电商平台随着业务的快速发展,订单数量不断增加,原有的单一数据库架构已经无法满足业务需求。为了解决数据存储容量问题和提高查询性能,该电商平台决定采用分库分表技术对订单系统进行优化。

(二)分库分表策略

  1. 分析业务需求
    • 该电商平台的订单系统主要包括订单的创建、查询、修改、删除等操作。订单数据的特点是数据量大、增长速度快、访问频繁。
    • 根据业务需求和数据特点,决定采用水平分库分表方式,按照订单的 ID 进行哈希分库,将订单数据分散存储到多个数据库中。按照订单的创建时间进行范围分表,将订单数据分散存储到多个表中。
  2. 设计数据库架构
    • 选择 MySQL 作为数据库产品,采用分布式部署方式,将多个数据库部署在不同的服务器上。使用数据库连接池技术管理数据库连接,提高连接的复用率。
    • 设计订单表结构,包括订单基本信息表、订单商品信息表、订单支付信息表等。根据分库分表规则,将订单数据存储到相应的数据库和表中。 
  3. 实现数据路由和合并
    • 采用哈希算法进行数据路由,确保数据能够正确地存储到相应的数据库和表中。对于查询操作,根据查询条件进行数据路由,定位到相应的数据库和表中进行查询。对于跨库跨表的查询操作,采用分布式查询引擎进行数据合并,将多个数据库和表中的数据合并成一个结果集返回给用户。

(三)性能优化措施

  1. 索引优化
    • 在订单的 ID、用户 ID、创建时间等字段上创建索引,提高查询性能。同时,定期对索引进行维护,如重建索引、优化索引等,确保索引的性能。
  2. 缓存查询结果
    • 对于频繁查询的订单数据,将查询结果缓存到 Redis 中,提高查询性能。设置合理的缓存过期时间,避免缓存数据过期导致的查询性能下降。
  3. 数据库服务器优化
    • 合理配置 MySQL 数据库参数,如调整缓存大小、连接数、线程数等,提高数据库的性能。定期对数据库进行优化,如清理无用数据、优化数据库结构、重建索引等,确保数据库的稳定性和性能。

(四)效果评估

  1. 数据存储容量
    • 通过分库分表,将订单数据分散存储到多个数据库和表中,有效地解决了数据存储容量问题。随着业务的不断发展,系统可以轻松地扩展数据库和表的数量,满足不断增长的数据存储需求。
  2. 查询性能
    • 采用哈希算法进行数据路由和分布式查询引擎进行数据合并,大大提高了查询性能。在高并发的情况下,系统能够快速响应查询请求,满足用户的需求。
  3. 系统稳定性
    • 分库分表后,系统的负载得到了均衡分布,避免了单个数据库或表的负载过高导致的系统故障。同时,通过合理的数据库服务器优化和缓存策略,提高了系统的稳定性和可靠性。

九、总结

订单信息分库分表是解决大规模数据存储和查询性能问题的有效手段。通过合理的分库分表策略、数据库架构设计、数据路由和合并实现,以及性能优化措施,可以有效地提高系统的性能、可扩展性和稳定性。在实际应用中,需要根据业务需求和数据特点,选择合适的分库分表方式和技术方案,并不断进行优化和调整,以满足不断变化的业务需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/468957.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unicode字符集(万国码)

1.三种编码方式: UTF-16:16个bit位(2个字节)存储 UTF-32:32个bit位(4个字节)存储 UTF-8:可变长度字符编码。1-4个字节存储,只需记住:英文字母1个字节表示&…

支持 Win10 的网络环境模拟(丢包,延迟,带宽)

升级 Windows 10 以后,原来各种网络模拟软件都挂掉了,目前能用的就是只有 clumsy: 唯一问题是不支持模拟带宽,那么平时要模拟一些糟糕的网络情况的话,是不太方便的,而开虚拟机用 Linux tc 或者设置个远程 l…

【Homework】【5】Learning resources for DQ Robotics in MATLAB

Lesson 5 代码-TwoDofPlanarRobot.m 表示一个 2 自由度平面机器人。该类包含构造函数、计算正向运动学模型的函数、计算平移雅可比矩阵的函数,以及在二维空间中绘制机器人的函数。 classdef TwoDofPlanarRobot%TwoDofPlanarRobot - 表示一个 2 自由度平面机器人类…

在模方置平建筑失败的原因是什么?

在模方置平建筑失败的原因是什么? 可能是obj拓扑不连续,可以在网格大师使用osgb转obj功能,选择拓扑或者重建。 网格大师是一款能够解决实景三维模型空间参考、原点、瓦块大小不统一,重叠区域处理问题的工具“百宝箱”&#xff0c…

【大咖云集 | IEEE计算智能学会广州分会支持】第四届信息技术与当代体育国际学术会议(TCS 2024,12月13-15日)

第四届信息技术与当代体育国际学术会议(TCS 2024) 2024 4th International Conference on Information Technology and Contemporary Sports 重要信息 会议官网:www.icitcs.net(会议关键词:TCS 2024) 202…

常用机器人算法原理介绍

一、引言 随着科技的不断发展,机器人技术在各个领域得到了广泛应用。机器人算法是机器人实现各种功能的核心,它决定了机器人的行为和性能。本文将介绍几种常用的机器人算法原理,包括路径规划算法、定位算法和运动控制算法。 二、路径规划算法…

Cynet:全方位一体化安全防护工具

前言 1999年,布鲁斯施奈尔曾说过:“复杂性是安全最大的敌人。”彼时还是19年前,而现在,网络安全已然变得更加繁杂。 近日我在网上冲浪过程中发现了这么一个平台性质的软件,看似具有相当强的防护能力。 根据Cynet的描…

dolphin 配置data 从文件导入hive 实践(一)

datax 支持多种数据源的相互读写,作为开源软件,提供了离线采集功能,方便系统开发,过程中遇到诸多配置,需要开发者自己探索,免费同样有成本 配置模板 {"setting": {},"job": {"s…

Redis如何保证数据不丢失(可靠性)

本文主要以学习为主,详细参考:微信公众平台 Redis 保证数据不丢失的主要手段有两个: 持久化 多机部署 我们分别来看它们两的具体实现细节。 1.Redis 持久化 持久化是指将数据从内存中存储到持久化存储介质中(如硬盘&#xf…

Linux数据管理初探

Linux数据管理初探 导语内存管理内存分配内存错用和处理 文件锁定锁文件/区域锁读写和竞争锁命令和死锁 dbm数据库例程dbm访问函数其他dbm函数 总结参考文献 导语 Linux为应用程序提供简洁的视图用来反映可直接寻址的内存空间(但实际上可能是内存外存)&…

Python中4个高效小技巧

分享 4 个省时的 Python 技巧,可以节省 10~20% 的 Python 执行时间。 包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】! 反转列表 Python 中通常有两种反转列表的方法:切片或 reverse() 函数调用。这两种方法都…

【黑马Redis原理篇】Redis数据结构

视频来源:原理篇[2,15] 文章目录 1.动态字符串SDS1.1 内部结构: 2.IntSet3.Dict3.1 dict的内部结构3.2 dict的扩容 4.ziplist压缩列表5.QuickList6.SkipList跳表7.RedisObject对象8.Redis的五种数据结构8.1 String8.2 List8.3 Set8.4 Zset 有序集合8.5 …

WPF之iconfont(字体图标)使用

1,前文: WPF的Xaml是与前端的Html有着高度相似性的标记语言,所以Xaml也可同Html一般轻松使用阿里提供的海量字体图标,从而有效的减少开发工作度。 2,下载字体图标: 登录阿里图标库网iconfont-阿里巴巴矢量…

内网部署web项目,外网访问不了?只有局域网能访问!怎样解决?

相关技术 要实现“内网部署,外网访问”,可以使用内网穿透、VPN技术、DMZ主机、端口映射等方法。以下是对这些方法的详细解释: 一、内网穿透 内网穿透是一种技术,它通过将内网设备映射到公网上的方式,实现外网访问内…

Android MVVM demo(使用DataBinding,LiveData,Fresco,RecyclerView,Room,ViewModel 完成)

使用DataBinding,LiveData,Fresco,RecyclerView,Room,ViewModel 完成 玩Android 开放API-玩Android - wanandroid.com 接口使用的是下面的两个: https://www.wanandroid.com/banner/jsonhttps://www.wan…

c++11(一)

c11(一) 1. C11的发展历史2. 列表初始化2.1 C98传统的{}2.2 C11中的{}2.3 C11中的std::initializer_list 3. 右值引⽤和移动语义3.1 左值和右值3.2 左值引⽤和右值引⽤3.3 引⽤延⻓⽣命周期3.4 左值和右值的参数匹配3.5 右值引⽤和移动语义的使⽤场景3.5…

‍️代码的华尔兹:在 Makefile 的指尖上舞动自动化的诗篇

文章目录 😶‍🌫️😶‍🌫️😶‍🌫️背景——一个优秀工程师必备技能😶‍🌫️😶‍🌫️😶‍🌫️一、🤩🤩快速了解…

SpringBoot中使用Thymeleaf模板引擎

和使用freemarker差不多的方式 1、导入thymeleaf的启动器 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> 2、编写Controller类 3、编写模板页面 注…

vue之子组件向父组件传值

参考博客先挂上 vue3中子传父&#xff08;emit&#xff09;、父传子&#xff08;props&#xff09;一篇文章拿下第一次写文章&#xff0c;告诉你vue3中如何实现父子相传&#xff0c;一篇文章帮 - 掘金 父组件通过 props 向子组件传值 1.子组件使用 $emit 触发事件 2.在父组件…

第26天 安全开发-PHP应用模板引用Smarty渲染MVC模型数据联动RCE安全

时间轴&#xff1a; 演示案例 新闻列表&模板引用-代码RCE安全 知识点 1、PHP 新闻显示-数据库操作读取显示 2、PHP 模版引用-自写模版&Smarty 渲染 3、PHP 模版安全-RCE 代码执行&三方漏洞 新闻列表 1.数据库创建新闻存储 2.代码连接数据库读取 3.页面进行自定…