数据库选型与优化:策略与技巧的探讨

大家好,我是一名狂热的数据库程序员,最近鼓起勇气开始吐槽一下数据库,如有雷同,请对号入座。

名不副实的数据库类型

先说说最近的事,我们业务有很多图片要管理,老板说让我选个专业的图数据库,还给我推荐了 Neo4j、Nebula、TigerGraph 一堆,让我好好对比下图片管理的能力。乍一试,结果没一个是可以存图片的,都说他们是用来存对象关系图,比如粉丝关系、情侣关系、债主关系啊等等。你这不是坑爹嘛?取名字也不带这样糊弄老板的。

图数据库类型

说到对象关系就恼火,那些号称发展了几十年的关系型数据库的,真是表里不一。有个项目我建了很多表的外键关联,并且还写了不少关联多个表的复杂 SQL,想秀秀技能,结果被 DBA 各种 diss,说这种外键和关联查询不适合用关系数据库,性能可能会很差,要打回去整改,感觉项目又要延期了。

我们那 mysql 关系型数据库里一张表已经快有1亿条记录,老板看到专家建议 mysql 最多放2000万条记录,但我现在也没遇到啥问题,到底是我错了还是专家说错了?如果按这建议我得搞几十张表,业务改造巨大,谁能救救我,我想怎么把专家先干了?同事说要不上文档数据库 MongoDB?

说起那个叫 MongoDB 的文档数据库就郁闷,你出来走两步,就一存 json 数据的,凭啥是文档数据库,也没看到你哪里适合存放 word、PDF 文档啊。你那【芒果数据库】的外号,难道你老板家种了很多 mango,再搞了专门放芒果的仓库。

文档数据库

还有,我们老板已经嚷了很久,说赶紧上大数据平台,不然怎么能把公司几百 GB的数据管理好。做好了大数据平台,我们未来就可能成为下一个 Google、微信,甚至是 ChatGPT。老板,你说的都对,高瞻远瞩,我想想怎么多搞些数据,不然咱们那台 PC 服务器可能闲得会罢工。

大数据平台

关系型数据库、图数据库、文档数据库,从这名字和实际功能看感觉都是个骗子。数据库不想再吐槽了,再吐槽下那些数据安全的囧事吧。

数据安全,不可小视

最近我那 Navicat 的开发工具又提示过期了,下了个破解版,最后发现藏了病毒,我慌得不敢说啊,找个好用的数据库开发工具就这么难吗?工欲善其事,必先利其器,老板能不能花点钱,咱们也支持下同行的正版计划,你看,人们都在知乎上要证明清白了。(能插个广告吗?数据库开发工具,就用ninedata,安全易用)

Navicat 破解版发现藏了病毒

我们那数据库密码,已经用了3年,没变过,大家还经常使用,估计保洁阿姨和快递小哥都知道了,我也为公司慌啊,感觉那 DBA 兄弟的饭碗迟早会保不住。

最后是我们保命的数据库备份,每次要恢复的时候不是备份失败,就是恢复出错,要不就是恢复时间太长,业务接受不了,我都感觉这备份的投资是打水漂了,主要是用来应付领导的。

数据库备份

老板,还有 DBA 兄弟,我先吐这么多啊,我绝对不会删库跑路的,其他人就不敢保证了,你们保重啊!

总结

  • 图数据库不是用来管理图片,是用来管理对象关联关系,在社交、风控等领域用得上;

  • 关系型数据库的外键很多坑,在多表关联也很吃力,尤其是执行计划用不上合理的索引时;

  • MySQL 的2000w记录上限说法已经过时了,尤其是那个按B树高度的解释,关键还是看数据结构、SQL 语句和硬件性能,同时定期清理或归档历史数据;

  • 文档数据库不是用来存文档的,是用来存放 JSON 格式的数据,适合比较灵活的 schema 设计;

  • 几百 GB 数据就不要折腾大数据了,一般数据库或者数据仓库就挺合适的;

  • 数据库备份别忘了恢复演练,否则就是形同虚设;

  • 盗版数据库客户端工具别用,迟早被黑;

  • 数据库密码要保管好,经常变变。

关于作者

作者是来自 NineData 的数据库开发工程师,也是10年老 DBA。NineData 的官网地址:www.ninedata.cloud,提供企业级数据库 SQL 开发工具,数据复制、对比、备份等产品,免费使用,无需下载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/190499.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国科大数据挖掘期末复习——聚类分析

聚类分析 将物理或抽象对象的集合分组成为由类似的对象组成的多个类的过程被称为聚类。由聚类所生 成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。 聚类属于无监督学习(unsupervised learning&…

简朴博客系统测试报告

文章目录 一. 项目简介二. 测试概要三. 测试环境四. 测试执行概况及功能测试1. 手工测试1.1 手动测试用例编写1.2 执行的部分测试用例 2. 自动化测试Selenium2.1 编写测试用例2.2 自动化测试代码 3. 测试结果 五. 发现的问题 一. 项目简介 简朴博客系统是采用前后端分离的方式…

抖音直播间涨粉助手,其开发流程与需要的技术和代码分享

先来看实操成果,↑↑需要的同学可看我名字↖↖↖↖↖,或评论888无偿分享 一、直播间涨人气的15种方法 直播间的人气就像水池中的水,想要有源源不断的流量,就要想办法把水龙头的水流开到最大,也就是要增加直播间曝光率&…

如何使用Matplotlib模块的text()函数给柱形图添加美丽的标签数据?

如何使用Matplotlib模块的text函数给柱形图添加美丽的标签数据? 1 简单引入2 关于text()函数2.1 Matplotlib安装2.2 text()引入2.3 text()源码2.4 text()参数说明2.5 text()两个简单示例 3 柱形图绘制并添加标签3.1 目标数据3.2 读取excel数据3.3 设置窗口大小和xy轴…

JVM判断对象是否存活之引用计数法、可达性分析

目录 前言 引用计数法 概念 优点 缺点 可达性分析 概念 缺点: 扩展: 1.GC Roots 概念 2.STW (Stop the world) 前言 JVM有两种算法来判断对象是否存活,分别是引用计数法和可达性分析算法,针对可达性分析算法STW时间长、…

Linux入门(三)

Linux grep 命令 1: 作用 ​ grep是一种文本搜索工具,它能使用特定的搜索模式,包括[正则表达式]搜索文本,并默认输出匹配行。 ​ windows类似的命令是findstr. 2:语法 grep -options(参数)…

OpenCV图像处理、计算机视觉实战应用

OpenCV图像处理、计算机视觉实战应用 专栏简介一、基于差异模型模板匹配缺陷检测二、基于NCC多角度多目标匹配三、基于zxing多二维码识别四、基于tesseract OCR字符识别 专栏简介 基于OpenCV C分享一些图像处理、计算机视觉实战项目。不定期持续更新,干货满满&…

圆弧插补-逐点比较法

圆弧插补-逐点比较法 逐点比较法直线插补流程 逐点比较法直线插补流程 逐点比较法第I象限逆圆插补 在圆弧加工过程中,要描述刀具位置与被加工圆弧之间的相对位置关系,可用动点到圆心的距离大小来反映。 如下图所示,假设被加工零件的轮廓为第…

振南技术干货集:比萨斜塔要倒了,倾斜传感器快来!(6)

注解目录 1、倾斜传感器的那些基础干货 1.1 典型应用场景 (危楼、边坡、古建筑都是对倾斜敏感的。) 1.2 倾斜传感器的原理 1.2.1 滚珠式倾斜开关 1.2.2 加速度式倾斜传感器 1)直接输出倾角 2)加速度计算倾角 3)倾角精度的提高 (如果…

数据结构与集合源码

我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! 本…

idea 环境搭建及运行java后端源码

1、 idea 历史版本下载及安装 建议下载和我一样的版本,2020.3 https://www.jetbrains.com/idea/download/other.html,idea分为专业版本(Ultimate)和社区版本(Community),前期可以下载专业版本…

windows 10 更新永久关闭

1 winR 输入:services.msc 编辑: 关闭: