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
步骤很简单:
- 打开Navicat,点击“连接” -> “MySQL”。
- 填写连接信息:主机名(localhost)、端口(3306)、用户名(root)、密码。
- 点击“测试连接”,如果提示成功,就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 本章知识体系
为了让你更直观地理解本章内容,我画了一张图,展示数据库选型与安装的核心逻辑:
这张图把咱们今天讲的内容串起来了。从选型开始,到安装配置,再到工具使用,每一步都有它的道理。
3.5 本章小结
今天咱们干了三件事:
- 搞清楚了关系型和非关系型数据库的区别,以及为什么库存管理系统选MySQL。
- 手把手安装了MySQL,并做了基本配置优化。
- 对比了Navicat和SQLyog,学会了用工具连接数据库。
嗯,到这里,数据库的基础环境就搭好了。下一章,咱们开始设计库存管理系统的数据表结构。到时候,你会看到今天学的这些东西,是怎么一步步变成真正的代码的。