MySQL 入门:最流行的开源关系型数据库介绍

文章目录

MySQL 是世界上最流行的开源关系型数据库,GitHub 星标超过 1 万,互联网公司大大小小项目基本都在用,不管是小网站还是大型互联网公司,都能看到它的身影。

我用 MySQL 快十年了,从小项目到大 数据量场景都玩过,聊聊它到底适合什么场景,用起来感受怎么样。

MySQL 解决了什么问题

做应用开发,数据总得持久化存储吧,文件存着查询麻烦,又不好做并发控制,关系型数据库把这些都给你解决了,SQL 查询语言写起来方便,索引给你做好了,事务给你保证数据一致性。

MySQL 开源免费,不用钱就能用,社区又大,碰到问题一搜全是解决方案,中小公司不用付版权费就能用在生产环境。它性能不错,配置好了能扛住高并发,索引优化、查询优化、分库分表一套方案都成熟了,从几行数据到几千万几亿行都能处理。

基础使用例子

安装完启动服务,命令行进去建个库建个表:

sql 复制代码
-- 连接数据库
mysql -u root -p

-- 创建数据库
CREATE DATABASE blog;

USE blog;

-- 创建表
CREATE TABLE articles (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(200) NOT NULL,
    content TEXT,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

-- 插入数据
INSERT INTO articles (title, content)
VALUES ('Hello MySQL', 'This is my first article');

-- 查询
SELECT * FROM articles WHERE id = 1;

Python 里用 pymysql 或者 sqlalchemy 连接也很简单:

python 复制代码
import pymysql

conn = pymysql.connect(
    host='localhost',
    user='root',
    password='password',
    database='blog'
)

cursor = conn.cursor()
cursor.execute("SELECT * FROM articles")
print(cursor.fetchone())

就这么点代码,数据就存在数据库里了,想怎么查就怎么查。

核心好用的特性

开源免费

社区版完全免费,商业版也才收点钱,中小公司直接用社区版就够了,不用花钱。

支持事务

InnoDB 引擎支持 ACID 事务,数据一致性有保证,转账、订单这些关键场景放心用。

索引丰富

B+树索引、哈希索引、全文索引,常用的索引类型都有,建对索引查询飞起来。

存储引擎可选

默认 InnoDB 适合大多数场景,追求快读可以用 MyISAM,不同场景选不同引擎。

主从复制做好了

原生支持主从复制,读写分离,一主多从架构能扛读请求,高可用性也有保障。

哪些场景用 MySQL

Web 应用业务数据,大部分网站的用户数据、商品数据、订单数据,存 MySQL 完全没问题,互联网公司几亿数据都扛得住。后台管理系统,企业内部应用,数据量不大,关系清晰,MySQL 直接用,开发快。

日志和审计数据,如果数据量不是特别大,直接存在 MySQL,查询方便,索引做好了查起来快。电商、订单、支付核心数据,事务支持好,数据一致性有保障,大部分电商公司核心数据都存在 MySQL。

MySQL 有哪些优缺点

优点真的很多,生态太成熟了,所有编程语言都有驱动,框架都支持,ORM 一集成,开发起来快。优化资料多,碰到性能问题网上一搜全是方案,从索引优化到分库分表,大家都踩过坑了,跟着走就行。稳定,这么多年生产环境验证,很少出奇葩问题,数据不容易丢,放心用。

缺点也有。大数据量上亿行之后,单库性能下降厉害,得自己做分库分表,这个工作挺麻烦的,不如一些 NewSQL 做得方便。对非结构化数据支持不好,JSON 虽然现在支持了,但不如 MongoDB 灵活,嵌套数据查起来麻烦。内存占用比 NoSQL 高一点,纯缓存场景不如 Redis 合适。

现在 MySQL 发展得怎么样

Oracle 收购之后一直在更新,现在 MySQL 8 都出了好多年,加了 CTE、窗口函数这些现代 SQL 特性,体验越来越好。

还是开源世界里关系型数据库的老大,用户最多,岗位需求也最多,做后端开发基本都要会。各种云厂商都提供托管 RDS,直接买就行,不用自己运维备份,方便得很。分支也多,MariaDB 是开源分支,兼容 MySQL,很多公司也在用,生态完全一样。

现在学 MySQL 值得吗

做后端开发,必须得学,几乎所有项目都要用,不会 SQL 和 MySQL 根本找不到开发工作。

基础用法不难,增删改查、建表建索引几天就能学会,高级优化慢慢在项目里积累就行。

学会了 MySQL,懂索引、事务、锁,面试后端开发必问这些,掌握了薪资能涨不少,太值得学了。

项目地址:https://github.com/mysql/mysql-server

,高级优化慢慢在项目里积累就行。

学会了 MySQL,懂索引、事务、锁,面试后端开发必问这些,掌握了薪资能涨不少,太值得学了。

项目地址:https://github.com/mysql/mysql-server

相关推荐
精益数智工坊1 小时前
拆解制造业仓库物料管理流程:如何通过标准化仓库物料管理流程解决账实不符难题
大数据·前端·数据库·人工智能·精益工程
nbwenren1 小时前
办公AI实测:Gemini3、GPT-4o、Claude3.5谁更强?
服务器·数据库·php
2401_824222692 小时前
如何卸载并重装Oracle Grid_Deinstall脚本与ASM磁盘清理
jvm·数据库·python
杨云龙UP2 小时前
Oracle数据库启动失败:ORA-29701、ORA-01565、ORA-17503故障处理记录_20260429
linux·运维·数据库·oracle·centos
qq_414256572 小时前
生产库如何利用Navicat实现配置特定触发器事件调度_提高管理效率
jvm·数据库·python
2301_808414382 小时前
MySQL表的约束
数据库·mysql
2301_775639892 小时前
mysql如何查看服务器支持的存储引擎_使用SHOW ENGINES命令
jvm·数据库·python
a7963lin2 小时前
html标签怎样表示搜索框_input type=search语义优化【操作】
jvm·数据库·python
a7963lin2 小时前
Python数据分析如何识别异常值_IQR四分位距检测法实战
jvm·数据库·python