MySQL只能做小项目?是时候说几句公道话了!

MySQL只能做小项目?是时候说几句公道话了!

我上学那会,很多人对 MySQL 有一些偏见,偏见主要集中在以下几方面:

1. MySQL 不支持事务(事实上 MyISAM 有表锁,但是效率比较低)

2. MySQL 存储的数据量比较小,适合小项目,大项目还是得上 Oracle、DB2 等

这么多年过去了,我自己在开发中一直是以 MySQL 为主,我觉得我有必要说两句公道话了。

公道话

第一个问题

关于第一个不支持事务的问题,这有一定的历史原因。MySQL 从设计之初,存储引擎就是可插拔的,允许公司或者个人按照自己的需求定义自己的存储引擎(当然,普通的公司或者个人其实是没有这个实力的)。MySQL 自研的使用较广的存储引擎是 MyISAM ,MyISAM 支持表锁,不支持行锁,所以在处理高并发写操作时效率要低一些,另外 MyISAM 也不支持外键(虽然现在实际项目中外键已经用的比较少了)。

但是这个问题并非无解。这就不得不说 MySQL 中另外一个大名鼎鼎的存储引擎 InnoDB 了。

InnoDB 存储引擎是由一家位于芬兰赫尔辛基的名为 Innobase Oy 的公司开发的,InnoDB 存储引擎的历史甚至比 MySQL 还要悠久。

InnoDB 刚刚开发的时侯,就是作为一个完整的数据库来开发的,因此功能很完备。开发出来之后,创始人是想将这个数据库卖掉的,但是没有找到买家。

后来 MySQL2.0 推出后,这种可插拔的存储引擎吸引了 Innobase Oy 公司创始人 Heikki Tuuri 的注意,在和 MySQL 沟通之后,决定将 InnoDB 作为一个存储引擎引入到 MySQL 中,MySQL 虽然支持 InnoDB ,但是实际上还是主推自家的 MyISAM。

但是 InnoDB 实在太优秀了,最终在 2006 年的时侯,成功吸引到大魔王 Oracle 的注意,大手一挥,就把 InnoDB 收购了。

MySQL 主推自家的 MyISAM ,日子过得也很惨淡,最终在 2008 年被 sun 公司以 10 亿美元拿下,这个操作巩固了 sun 在开源领域的领袖的地位,可是一直以来 sun 公司的变现能力都比较弱,最终 sun 自己在 2009 年被 Oracle 收入囊中。那会我还在读高中,某一天吃午饭的时侯,餐厅的电视机上播放央视的午间新闻,看到了这条消息,现在还有一些印象。

Oracle 收购 sun 之后,InnoDB 和 MySQL 就都成了 Oracle 的产品了,这下整合就变得非常容易了,在后来发布的版本中,InnoDB 慢慢就成为了 MySQL 的默认存储引擎。在最新的 MySQL8 中,元数据表也使用了 InnoDB 作为存储引擎。

InnoDB 存储引擎主要有如下特点:

1. 支持事务

2. 支持 4 个级别的事务隔离

3. 支持多版本读

Shakker Shakker

多功能AI图像生成和编辑平台

Shakker 103 查看详情 Shakker

4. 支持行级锁

5. 读写阻塞与事务隔离级别相关

6. 支持缓存,既能缓存索引,也能缓存数据

7. 整个表和主键以 Cluster 方式存储,组成一颗平衡树

8. …

当然也不是说 InnoDB 一定就是好的,在实际开发中,还是要根据具体的场景来选择到底是使用 InnoDB 还是 MyISAM 。

所以第一个问题不攻自破。

第二个问题

第二个问题确实是一个硬伤。

你要是拿 MySQL 和 Oracle 比,肯定是要差一点点感觉。毕竟一个免费一个收费,而且收费的还很贵。但是这个问题并非无解。

相信很多小伙伴都听过国内很多大厂都使用了 MySQL 来存储数据。大厂用 MySQL ,是因为他们有能力研发出自己的存储引擎,小厂一般没有这个实力,没法去研发出自己的存储引擎,但是 Oracle 又用不起,那么怎么办呢?

这几年兴起的分布式数据库中间件刚好可以很好的解决这个问题。Java 领域,类似的工具很多,例如 Sharding-JDBC 、MyCat 等,通过这些工具,可以很好的实现数据库分库分表,以及数据表的动态扩展、读写分离、分布式事务解决等。有了这些工具,极大的提高了 MySQL 的应用场景。

另一方面,近些年流行微服务,这不是单纯的炒概念,微服务架构将一个大的项目拆分成很多个小的微服务,各个微服务处理自己很小的一部分事情,这更符合人类分工协作的特点。在微服务架构中,我们对大表的需求、对多表联合查询的需求都会有所降低,MySQL 也更具用武之地。

因此,第二个问题也是可以解决的。

据我了解,互联网公司使用 MySQL 还是比较多的,传统软件公司,可能会更青睐 Oracle 等数据库。

不过话说回来,云计算,也是未来一个方向。

更多MySQL相关技术文章,请访问MySQL教程栏目进行学习!

以上就是MySQL只能做小项目?是时候说几句公道话了!的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1078976.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Vue应用中如何优化大量图片的处理和离线存储?
上一篇 2025年12月2日 17:34:04
如何在Golang中测试网络请求超时
下一篇 2025年12月2日 17:34:15

相关推荐

  • Win7系统如何打开本地安全策略

    Win7系统如何打开本地安全策略Win7系统如何打开本地安全策略Win7系统如何打开本地安全策略Win7系统如何打开本地安全策略

    相信不少用户对本地安全策略的概念并不熟悉,更不了解它的具体打开方式,导致在需要用到该功能时无从下手。那么在windows 7系统中,该如何打开本地安全策略呢?接下来就为大家详细介绍win7系统进入本地安全策略的具体步骤。 Win7打开本地安全策略的详细步骤: 1、首先点击桌面左下角的“开始”按钮,然…

    2026年10月3日 • 用户投稿
    100
  • 创建空的 JsonNode 的方法

    创建空的 JsonNode 的方法创建空的 JsonNode 的方法创建空的 JsonNode 的方法创建空的 JsonNode 的方法

    本文介绍了在 Jackson 库中创建空的 JsonNode 的两种常用方法,并提供示例代码。通过 ObjectMapper 或 JsonNodeFactory,你可以轻松地创建空对象节点,并将其用于替换或设置 JSON 结构中的特定字段。掌握这些方法,能够更灵活地处理 JSON 数据。 在处理 J…

    2026年10月3日 • 用户投稿
    300
  • 电脑硬盘被格式化后如何恢复?尝试深度恢复工具还原文件结构

    电脑硬盘被格式化后如何恢复?尝试深度恢复工具还原文件结构电脑硬盘被格式化后如何恢复?尝试深度恢复工具还原文件结构电脑硬盘被格式化后如何恢复?尝试深度恢复工具还原文件结构电脑硬盘被格式化后如何恢复?尝试深度恢复工具还原文件结构

    硬盘格式化后文件消失可尝试恢复:立即停止使用硬盘防止覆盖,优先通过Windows“以前的版本”或“文件历史记录”功能找回文件;若无效,使用嗨格式、易我等专业软件进行深度扫描恢复;或用DiskGenius重建分区表并导出数据至安全位置。 如果您尝试访问某个硬盘分区,但发现所有文件都已消失且系统提示该分…

    2026年10月3日 • 用户投稿
    100
  • 7月及1-7月江浙沪地区车型销量榜:小米SU7双榜第二

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 小米su7 8月25日,有汽车媒体公布了%ignore_a_1%7月及1-7月江浙沪地区车型销量TOP20榜单。数据显示,小米SU7在该区域表现抢眼,分别以8010辆的单月销量和58138辆的累…

    2026年10月3日
    100
  • 华为Mate系列应用卸载失败怎么办?清除顽固应用的终极方法

    无法卸载华为Mate系列应用时,首先检查是否开启桌面锁定布局,关闭后尝试长按图标卸载;若无效,进入设置-应用管理查找卸载选项,或先清除应用数据与缓存;仍无法卸载可重启至安全模式操作;对于系统级应用,需启用USB调试并通过ADB命令adb shell pm uninstall –user …

    2026年10月3日
    200
  • 《被诅咒的小护!ReCurse》繁体中文版将于9月25日正式发售

    《被诅咒的小护!ReCurse》繁体中文版将于9月25日正式发售《被诅咒的小护!ReCurse》繁体中文版将于9月25日正式发售《被诅咒的小护!ReCurse》繁体中文版将于9月25日正式发售《被诅咒的小护!ReCurse》繁体中文版将于9月25日正式发售

    h2interactive宣布,由city connection制作的射击游戏《被诅咒的小护!recurse》繁体中文版将于9月25日正式推出,登陆ps4、ps5及nintendo switch平台。目前ps5与nintendo switch的一般版及限定版已开放预购,游戏支援繁体中文、简体中文与日…

    2026年10月3日 • 用户投稿
    100
  • 火狐浏览器怎么修改网页的默认编码_火狐浏览器解决网页乱码的文本编码修复方法

    火狐浏览器怎么修改网页的默认编码_火狐浏览器解决网页乱码的文本编码修复方法火狐浏览器怎么修改网页的默认编码_火狐浏览器解决网页乱码的文本编码修复方法火狐浏览器怎么修改网页的默认编码_火狐浏览器解决网页乱码的文本编码修复方法火狐浏览器怎么修改网页的默认编码_火狐浏览器解决网页乱码的文本编码修复方法

    遇到网页乱码时,可通过火狐浏览器调整字符编码解决。首先点击右上角菜单,进入更多工具→文本编码,手动选择GBK、UTF-8或Big5等格式恢复显示。为预防问题,可在about:config中搜索intl.charset.default并设为UTF-8,统一默认编码。对于复杂场景,推荐安装Charset…

    2026年10月3日 • 用户投稿
    100
  • JavaFX动态绑定依赖:利用ObservableList实现可变依赖

    JavaFX动态绑定依赖:利用ObservableList实现可变依赖JavaFX动态绑定依赖:利用ObservableList实现可变依赖JavaFX动态绑定依赖:利用ObservableList实现可变依赖JavaFX动态绑定依赖:利用ObservableList实现可变依赖

    本文探讨了在JavaFX中如何处理绑定(Binding)的动态依赖问题,尤其是在依赖集合会随程序运行而变化时。通过利用JavaFX的ObservableList作为绑定的一个核心依赖,我们可以巧妙地实现当列表内容(如元素增删)发生变化时,自动触发绑定重新计算,从而避免了手动修改或重新创建绑定,为构建…

    2026年10月3日 • 用户投稿
    200
  • [爬虫]Windows下如何安装python第三方库lxml

    [爬虫]Windows下如何安装python第三方库lxml[爬虫]Windows下如何安装python第三方库lxml[爬虫]Windows下如何安装python第三方库lxml[爬虫]Windows下如何安装python第三方库lxml

    lxml库在python中是非常强大且高效的xml解析工具,尤其与beautifulsoup和requests结合使用时,是爬虫开发的常用配置。然而,在windows系统上安装lxml可能会遇到不少挑战。本文将详细介绍如何在windows系统上成功安装lxml,希望能帮助那些在安装过程中遇到困难的p…

    2026年10月3日 • 用户投稿
    400
  • 三星推出首款OLED智能显示器

    三星推出首款OLED智能显示器三星推出首款OLED智能显示器三星推出首款OLED智能显示器三星推出首款OLED智能显示器

    据媒体报道,6月25日,三星电子正式发布了2025年度三款全新智能显示器产品。为顺应便携设备日益增长的市场需求,此次推出的产品中首次配备了有机发光二极管(oled)面板以及“l型”支架设计。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 新…

    2026年10月3日 • 用户投稿
    200
  • Yii框架中的表单构建器:构建复杂表单

    随着互联网的快速发展,web应用越来越成为人们生活中不可或缺的一部分。而表单是web应用中不可或缺的元素之一,其用于收集用户数据,让web应用能够更好地为用户服务。 Yii框架是一个快速、高效、灵活的PHP框架,可以帮助开发人员更加快速地开发Web应用。Yii框架中的表单构建器(Form Build…

    用户投稿 2026年10月3日
    100
  • 企查查怎么查找上下游企业_企查查如何查询企业供应链关系详细技巧

    企查查怎么查找上下游企业_企查查如何查询企业供应链关系详细技巧企查查怎么查找上下游企业_企查查如何查询企业供应链关系详细技巧企查查怎么查找上下游企业_企查查如何查询企业供应链关系详细技巧企查查怎么查找上下游企业_企查查如何查询企业供应链关系详细技巧

    通过企查查可查询企业供应链结构:1. 登录官网或App搜索目标企业;2. 进入详情页查找“产业链”或“上下游”模块;3. 查看树状产业链图,识别上游供应商与下游客户;4. 切换至企业列表并筛选关键信息;5. 点击关联企业深入分析其经营与风险状况。 如果您需要了解某家企业的供应链结构,明确其上游供应商…

    2026年10月3日 • 用户投稿
    100
  • 怎样让豆包AI帮你写广告文案 高效创作营销内容的AI技巧

    怎样让豆包AI帮你写广告文案 高效创作营销内容的AI技巧怎样让豆包AI帮你写广告文案 高效创作营销内容的AI技巧怎样让豆包AI帮你写广告文案 高效创作营销内容的AI技巧怎样让豆包AI帮你写广告文案 高效创作营销内容的AI技巧

    使用豆包ai写广告文案的关键在于明确需求、精准引导和持续优化。首先,要清楚广告目标与受众定位,包括产品卖点、用户画像及情绪氛围,如为25-35岁白领写便携咖啡杯广告。其次,用具体提示词控制ai输出风格,如指定“口语化”、“100字以内”或“电商详情页文案”。最后,多轮优化是关键,ai生成的文案需润色…

    2026年10月3日 • 用户投稿
    100
  • 如何从坏掉的机械硬盘恢复数据?使用专业设备提取可读数据

    如何从坏掉的机械硬盘恢复数据?使用专业设备提取可读数据如何从坏掉的机械硬盘恢复数据?使用专业设备提取可读数据如何从坏掉的机械硬盘恢复数据?使用专业设备提取可读数据如何从坏掉的机械硬盘恢复数据?使用专业设备提取可读数据

    1、硬盘故障时应立即停用并送至专业机构,在无尘环境更换磁头等部件后读取数据;2、对有坏道的硬盘可用Linux下的DDRescue工具创建镜像,优先保存可读数据;3、若电路板损坏,可更换同型号PCB并复制ROM芯片数据尝试修复。 如果您的机械硬盘出现故障导致数据无法访问,但存储数据的盘片本身可能并未完…

    2026年10月2日 • 用户投稿
    100
  • JavaFX:动态修改 Binding 依赖项的解决方案

    JavaFX:动态修改 Binding 依赖项的解决方案JavaFX:动态修改 Binding 依赖项的解决方案JavaFX:动态修改 Binding 依赖项的解决方案JavaFX:动态修改 Binding 依赖项的解决方案

    在 JavaFX 图形可视化应用中,经常会遇到顶点和边动态变化的情况。例如,一个顶点可能需要根据其邻居节点的位置来计算自环的角度。在这种情况下,我们需要动态地修改 Binding 的依赖项。然而,JavaFX 的 DoubleBinding 提供的 getDependencies 方法返回的是一个不…

    2026年10月2日 • 用户投稿
    200
  • [WPF自定义控件库]排序、筛选以及高亮

    [WPF自定义控件库]排序、筛选以及高亮[WPF自定义控件库]排序、筛选以及高亮[WPF自定义控件库]排序、筛选以及高亮[WPF自定义控件库]排序、筛选以及高亮

    要让列表的内容更容易查找,我们可以通过排序、筛选和高亮功能来优化列表。假设有一个本地数据源的列表,由于内容太多,查找特定数据会比较困难。通过改造后的列表,可以看到这些优化后的效果。 在WPF中实现数据排序的常规方法是使用CollectionViewSource。CollectionViewSourc…

    2026年10月2日 • 用户投稿
    200
  • 火狐浏览器截图功能怎么使用_火狐浏览器内置网页截图工具使用方法详解

    火狐浏览器截图功能怎么使用_火狐浏览器内置网页截图工具使用方法详解火狐浏览器截图功能怎么使用_火狐浏览器内置网页截图工具使用方法详解火狐浏览器截图功能怎么使用_火狐浏览器内置网页截图工具使用方法详解火狐浏览器截图功能怎么使用_火狐浏览器内置网页截图工具使用方法详解

    火狐浏览器内置截图工具支持多种截取方式。1、右键选择截图或使用快捷键Command+Shift+S(Mac)/Ctrl+Shift+S(Windows/Linux)启动功能。2、拖动十字准星框选指定区域,调整后点击截图。3、悬停目标元素自动高亮,单击捕获并可调节范围。4、点击“截取整个页面”按钮自动…

    2026年10月2日 • 用户投稿
    300
  • 解决复选框数据无法插入数据库的问题:系统化调试指南

    本文旨在解决Web应用中复选框数据无法成功插入数据库的问题。我们将深入探讨常见错误原因,并提供一套系统化的调试策略,包括利用XDebug进行代码追踪、检查PHP错误日志、直接验证数据库状态以及排查数据库连接配置,确保开发者能够高效定位并解决数据插入失败的根本原因。 理解问题:复选框数据插入失败的常见…

    2026年10月2日
    100
  • JavaFX动态绑定:如何高效管理可变依赖集合

    JavaFX动态绑定:如何高效管理可变依赖集合JavaFX动态绑定:如何高效管理可变依赖集合JavaFX动态绑定:如何高效管理可变依赖集合JavaFX动态绑定:如何高效管理可变依赖集合

    在JavaFX中,数据绑定是实现UI与数据模型同步的关键机制。然而,在处理某些复杂场景,特别是当绑定的依赖项本身是一个动态变化的集合时,传统的绑定方式可能会遇到挑战。例如,在图可视化应用中,一个顶点的某些属性(如自环的优选角度)可能依赖于其所有邻居节点的位置。当图结构动态变化,即邻居列表增删时,如何…

    2026年10月2日 • 用户投稿
    100
  • 如何在Elser AI Comics中修改和优化AI生成的漫画角色形象?

    如何在Elser AI Comics中修改和优化AI生成的漫画角色形象?如何在Elser AI Comics中修改和优化AI生成的漫画角色形象?如何在Elser AI Comics中修改和优化AI生成的漫画角色形象?如何在Elser AI Comics中修改和优化AI生成的漫画角色形象?

    文章主要探讨了如何提高团队协作效率,并提出了三个关键策略:一是明确分工与责任,确保每位成员清楚自身任务;二是加强沟通机制,定期召开会议并使用协作工具提升信息共享效率;三是建立反馈文化,鼓励成员提出意见并及时调整工作方式。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 Deep…

    2026年10月2日 • 用户投稿
    200

发表回复

登录后才能评论
关注微信