3. 数据库选型与安装:关系型与非关系型数据库对比、MySQL安装与配置、Navicat/SQLyog工具使用

好,咱们直接进入正题。库存管理系统,说白了就是跟数据打交道。数据存哪儿?怎么存?用什么工具管?这三个问题,今天一次性讲清楚。

我个人习惯,在动手写代码之前,先把地基打牢。数据库选型就是地基中的地基。你想想看,如果地基选错了,后面盖再高的楼,心里也不踏实。

3.1 关系型 vs 非关系型:到底选哪个?

先别急着装MySQL,咱们先聊聊“为什么选它”。

关系型数据库,比如MySQL、PostgreSQL、Oracle。它们的特点是:数据有固定的结构(表),表与表之间可以建立关联(外键),支持ACID事务。说白了,就是“规规矩矩”的数据存储方式。

非关系型数据库,比如MongoDB、Redis、Elasticsearch。它们的特点是:灵活、扩展性强、性能高。但代价是——事务支持弱,数据一致性需要自己保证。

我在项目中遇到过一个问题:一个电商系统,订单数据用MongoDB存,结果并发高的时候,库存扣减出现了超卖。嗯,这就是非关系型数据库在强一致性场景下的短板。

核心结论:

  • 库存管理系统,核心数据(商品、库存、订单)必须用关系型数据库。因为要保证数据一致性和完整性。
  • 非关系型数据库可以用在辅助场景,比如缓存热点数据(Redis)、存储日志(Elasticsearch)。

所以,咱们这门课,主力数据库就是MySQL。别问为什么,问就是——成熟、稳定、社区活跃、你出去找工作也绕不开它。

3.2 MySQL安装与配置:手把手带你走一遍

安装MySQL其实不难,但有几个坑,我踩过,不想让你再踩一遍。

3.2.1 下载与安装

去MySQL官网下载社区版(Community Server),别下企业版,那个要钱。我建议用8.0.x版本,5.7虽然也稳定,但8.0的性能和功能都有明显提升。

安装时注意几点:

  • 选择“Developer Default”安装类型,会帮你装好MySQL Server、Workbench、Shell等工具。
  • 设置root密码时,别用太简单的,比如123456。我见过有人被黑,数据被删,勒索比特币。
  • 端口默认3306,不用改。除非你本机有其他服务占用了这个端口。

小技巧:安装完成后,打开Windows服务管理器,把MySQL服务设为“自动启动”。不然每次重启电脑都要手动启动服务,很烦。

3.2.2 基本配置

安装完别急着用,先做几项配置优化。打开MySQL的配置文件(Windows下是my.ini,Linux下是my.cnf),找到以下几项:

[mysqld]
# 字符集,建议用utf8mb4,支持emoji
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

# 最大连接数,根据你的服务器配置调整
max_connections = 200

# 默认存储引擎,InnoDB支持事务
default-storage-engine = InnoDB

# 缓冲池大小,建议设为物理内存的70%
innodb_buffer_pool_size = 2G

我曾经帮一个朋友调优,他的MySQL默认配置跑库存查询,一次要3秒。改完缓冲池和索引后,降到50毫秒。你想想看,差距有多大。

注意:修改配置文件后,必须重启MySQL服务才能生效。别问我怎么知道的——我改完忘了重启,排查了半天。

3.3 可视化工具:Navicat vs SQLyog

命令行操作MySQL虽然很酷,但日常开发中,可视化工具能让你效率翻倍。我个人习惯用Navicat,但SQLyog也有它的优势。咱们对比一下:

对比项 Navicat SQLyog
界面风格 现代化,支持暗色主题 经典风格,稍显老旧
功能丰富度 支持MySQL、MariaDB、SQL Server等多种数据库 专注MySQL,功能够用
数据导入导出 支持Excel、CSV、JSON等多种格式 支持CSV、SQL,格式较少
价格 收费,约1000元/年 社区版免费,专业版收费
学习曲线 简单,上手快 更简单,但功能有限

我的建议是:如果你预算充足,用Navicat。它的数据同步、结构同步、备份还原功能,在库存管理系统开发中非常实用。如果只是临时用用,SQLyog社区版也够用。

3.3.1 用Navicat连接MySQL

步骤很简单:

  1. 打开Navicat,点击“连接” -> “MySQL”。
  2. 填写连接信息:主机名(localhost)、端口(3306)、用户名(root)、密码。
  3. 点击“测试连接”,如果提示成功,就OK了。

连接成功后,你会看到左侧出现一个数据库列表。嗯,这里就是咱们库存管理系统的“家”了。

避坑指南:我曾经遇到一个问题,Navicat连接MySQL时提示“Client does not support authentication protocol”。这是因为MySQL 8.0默认用了caching_sha2_password加密方式,而Navicat旧版本不支持。解决办法:在MySQL中执行 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; 然后刷新权限。

3.4 本章知识体系

为了让你更直观地理解本章内容,我画了一张图,展示数据库选型与安装的核心逻辑:

数据库选型与安装核心逻辑 选型 关系型 非关系型 MySQL安装 下载安装 配置优化 可视化工具 Navicat SQLyog 总结 库存管理系统 → 关系型数据库(MySQL) → 可视化工具(Navicat/SQLyog) 非关系型数据库作为辅助,用于缓存、日志等场景

这张图把咱们今天讲的内容串起来了。从选型开始,到安装配置,再到工具使用,每一步都有它的道理。

3.5 本章小结

今天咱们干了三件事:

  • 搞清楚了关系型和非关系型数据库的区别,以及为什么库存管理系统选MySQL。
  • 手把手安装了MySQL,并做了基本配置优化。
  • 对比了Navicat和SQLyog,学会了用工具连接数据库。

嗯,到这里,数据库的基础环境就搭好了。下一章,咱们开始设计库存管理系统的数据表结构。到时候,你会看到今天学的这些东西,是怎么一步步变成真正的代码的。