← 返回目录

第 7 卷

第 7 / 12 卷日期:

数据库提供结构化查询语言(SQL)或专用查询接口(如MongoDB的聚合查询),支持复杂条件查询、排序、分组、统计等操作,且通过索引优化查询性能,可快速从海量数据中定位目标数据。

  1. 实现数据共享与并发访问

文件存储难以支持多用户同时访问(如多个用户同时修改同一文件,容易导致数据错乱),且无法实现不同应用程序共享数据。

数据库支持多用户、多应用程序并发访问,通过锁机制(如行锁、表锁)避免并发冲突,同时提供数据共享接口,让多个应用程序可安全地访问同一数据库中的数据(如电商系统的订单模块和支付

模块共享用户订单数据)。

  1. 提升数据安全性

文件存储的安全防护能力弱,数据容易被篡改、删除或泄露(仅能依赖文件系统的权限控制)。

数据库提供完善的安全机制:

  • 身份认证:用户需输入账号密码才能访问数据库;
  • 权限控制:可细粒度控制用户权限(如某用户仅能查询数据,不能修改数据);
  • 数据备份与恢复:支持自动备份数据,可在数据丢失或损坏时快速恢复;
  • 数据加密:对敏感数据(如密码、手机号)进行加密存储,防止泄露。
  1. 便于数据管理与维护

文件存储中,数据的新增、修改、删除需要手动操作文件,难以管理;数据备份、日志记录等维护工作繁琐。

数据库管理系统(DBMS)提供可视化管理工具(如MySQL的Navicat、MongoDB的Compass)

和命令行工具,支持数据批量操作、自动备份、日志监控等功能,降低数据管理和维护的成本。

十、常见的数据库有哪些?什么是关系型数据库和非关系型数据库? 它们有什么区

别?

  1. 常见的数据库

数据库按数据模型可分为关系型数据库和非关系型数据库,常见类型及代表如下:

  1. 关系型数据库(RDBMS)

代表:MySQL(开源,应用最广泛)、Oracle(商业,高性能,适用于大型企业)、SQL Server (微软,适用于Windows环境)、PostgreSQL(开源,支持复杂数据类型和SQL标准)、SQLite

(嵌入式,适用于轻量级应用,如移动端APP)。

  • 键值型:Redis(内存数据库,适用于缓存、会话存储、实时统计);
  • 列族型:HBase(适用于海量数据存储,如大数据分析场景);
  • 图数据库:Neo4j(适用于关系网络分析,如社交网络、推荐系统)。
  1. 关系型数据库和非关系型数据库的定义
  2. 关系型数据库(Relational Database)

基于关系模型(由二维表组成,表中的行是记录,列是字段)的数据库,数据之间通过主键、外键建立关联关系。核心特征:

  • 数据结构化:以表为单位存储数据,表结构固定(需提前定义字段名、数据类型、约束);
  • 支持SQL:通过结构化查询语言(SQL)进行数据操作;
  • 遵循ACID事务:保证数据的原子性、一致性、隔离性、持久性;
  • 数据完整性:通过主键、外键、唯一性约束等保证数据有效。
  1. 非关系型数据库(Non-Relational Database,简称NoSQL)

不依赖关系模型的数据库,数据存储格式灵活(如文档、键值对、列族、图),核心特征:

  • 数据非结构化/半结构化:无需提前定义数据结构,可动态添加字段(如MongoDB的文档可包含

不同字段);

  • 不依赖SQL:部分支持类SQL查询(如MongoDB的MongoSQL),但无统一查询标准;
  • 事务支持灵活:多数NoSQL数据库不支持完整ACID事务(如Redis仅支持简单事务,MongoDB

4.0+支持多文档事务),更强调最终一致性;

  • 高并发、高可扩展性:专为海量数据和高并发访问设计,支持分布式部署。
  1. 关系型数据库和非关系型数据库的核心区别
对比维度关系型数据库非关系型数据库
数据模型二维表结构,数据间有明确关文档、键值对、列族、图等,
联数据间关联弱
数据结构固定(需提前定义表结构)灵活(动态添加字段,无需预

定义)

查询语言支持标准SQL,查询功能强大无统一标准,各数据库有专用查询接口(部分支持类SQL)

事务支持支持完整ACID事务,数据一多数不支持完整ACID,支持致性强最终一致性或部分事务(如

Redis简单事务)

数据完整性通过主键、外键、约束等保证依赖应用程序逻辑保证数据完
数据完整性整性,数据库层面约束弱
适用场景数据关系复杂、需要强一致性海量数据存储、高并发访问、
的场景(如电商订单、金融交数据结构不固定的场景(如缓
易、用户管理)存、日志、社交网络、大数据

分析)

  1. 总结

关系型数据库适合数据结构固定、关系复杂、需要强一致性的场景,核心优势是数据完整性和事务支持;非关系型数据库适合数据量大、并发高、数据结构灵活的场景,核心优势是高可扩展性和高并发

性能。实际开发中,两者常结合使用(如用MySQL存储核心业务数据,Redis做缓存提升访问速度, MongoDB存储日志数据)。

十一、MySQL的存储引擎有哪些?InnoDB与MyISAM的区别是什么?

  1. MySQL常见的存储引擎

存储引擎是MySQL处理数据的核心组件,负责数据的存储、索引构建、事务管理等底层操作,MySQL 支持多种存储引擎,可通过 SHOW ENGINES; 命令查看支持的引擎及状态。常见存储引擎如下:

  1. InnoDB:MySQL 5.5及以上版本的默认存储引擎,支持事务、行级锁、外键约束,适用于需要强

一致性的业务场景(如电商订单、金融交易)。

  1. MyISAM:早期MySQL的默认存储引擎,不支持事务和外键,采用表级锁,查询性能优异,适用于

只读或读写较少的场景(如静态网站数据、日志存储)。

  1. Memory:数据存储在内存中,读写速度极快,但重启MySQL后数据丢失,适用于临时数据存储、

缓存场景(如临时统计结果)。

  1. Archive:专为归档设计,支持高压缩比,仅支持插入和查询操作,适用于海量历史数据归档(如

多年前的用户日志)。

  1. CSV:数据以CSV文件格式存储,可直接用文本编辑器查看,适用于数据导入导出场景(如与其他

系统数据交互)。

  1. InnoDB与MyISAM的核心区别

对比维度InnoDBMyISAM

全站分卷索引 · 12 卷
  1. 1第 1 卷
  2. 2第 2 卷
  3. 3第 3 卷
  4. 4第 4 卷
  5. 5第 5 卷
  6. 6第 6 卷
  7. 7第 7 卷
  8. 8第 8 卷
  9. 9第 9 卷
  10. 10第 10 卷
  11. 11第 11 卷
  12. 12第 12 卷