首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将图存储在MySQL中是一个好主意吗?

将图存储在MySQL中是一个好主意吗?

这个问题涉及到图数据库和关系型数据库的选择。在决定是否将图存储在MySQL中之前,我们需要了解图数据库和关系型数据库的区别。

图数据库是一种专门用于存储和查询图结构数据的数据库。它可以很好地处理复杂的关系和网络结构数据。而关系型数据库如MySQL则是一种通用的数据库,适用于存储各种类型的数据,包括图结构数据。

如果您的应用程序需要处理复杂的图结构数据,并且需要高效的图查询和分析功能,那么使用图数据库可能是更好的选择。目前市场上有许多流行的图数据库产品,如Neo4j、JanusGraph和ArangoDB等。

如果您的应用程序只需要存储简单的图结构数据,或者您的查询和分析需求较低,那么将图存储在MySQL中可能是一个可行的选择。但是需要注意的是,MySQL的性能和可扩展性可能会受到影响,因为它并不是专门为图数据设计的。

总之,将图存储在MySQL中是否是一个好主意,取决于您的应用程序需求和数据结构。如果您需要处理复杂的图结构数据,建议使用专门的图数据库产品。如果您的需求较简单,可以考虑在MySQL中存储图数据,但需要注意性能和可扩展性的影响。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

shell脚本,如何一个命令存储一个变量

问题 我想将一个命令保存到一个变量,以便稍后再使用(不是命令的输出,而是命令本身)。...(带有管道/多个命令)的命令存储变量以供以后使用?...回答 对于带有管道或重定向的组合命令最推荐的方式将其封装到一个函数里,然后需要时直接调用即可。...一个高赞回答使用 eval,代码如下: x="ls | wc" eval "$x" y=$(eval "$x") echo "$y" 但是其中 eval 一个非常容易引发错误的内置命令,没有警告用户可能存在不可预料的解析行为风险的情况下...朋友们有踩到过 eval 命令的坑,可以评论区留言交流一下。 参考 stackoverflow question 5615717 help eval

14010

MYSQL 中间件分表一个好主意

通过中间件来对MYSQL的数据进行分表一个常见的对于大数量的解决的方案,通过中间件应用的数据中间层进行路由,通过路由一张表的数据,映射到不同物理数据库上的表,通过应用设计的分片键数据根据规则存储不同的物理服务器上...分表后,我们解决了单体MYSQL无法解决的一些问题,那么这是一个好主意? 这里且不武断的评判这是不是一个好的注意,我们看看在我们分库分表后,我们会遇到什么其他的问题。...1 数据查询的问题 上面提到,数据分表后,需要指定分片键来对数据进行存储和查询的,在数据查询的过程,如果查询的语句中没有分片键的信息,那么数据查询本身要通过扫描全体分表后,在给出数据结果的。...,分表后,数据备份中会遇到第一个挑战就是数据的备份的一致性,通过逻辑备份可以满足一致性的数据表备份的问题,但又保证不了数据备份的性能的问题,本来就要解决数据库性能的问题,而大表在数据备份逻辑备份保证不了性能...综上,分表本身是不是一个好主意,如果一个系统建立之初,业务不稳定,数据量不确定的情况下,贸然采用分表的方式,可能不是适用,而在业务稳定后,再次进行改造,会解决部分上面提到的一些问题,至少那时你的分片键用哪个基本上可以确定的

30730
  • MySQL索引实现

    MySQL索引实现 MySQL,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式不同的,本文主要讨论MyISAM和InnoDB两个存储引擎的索引实现方式。...如果我们Col2上建立一个辅助索引,则此索引的结构如下图所示: ? 9 同样也是一颗B+Tree,data域保存数据记录的地址。...例如,11为定义Col3上的一个辅助索引: ? 11 这里以英文字符的ASCII码作为比较准则。...再例如,用非单调的字段作为主键InnoDB不是个好主意,因为InnoDB数据文件本身一颗B+Tree,非单调的主键会造成插入新记录时数据文件为了维持B+Tree的特性而频繁的分裂调整,十分低效,...看这篇文章一定要结合MySQL索引背后的数据结构及算法原理一起看,才能深刻理解。 下一期具体讨论这些与索引有关的优化策略。

    59420

    编写一个Java Web项目,实现从properties文件读取数据存储到数据库,并从数据库读取数据,结果显示页面上。启动mysql数据库服务器端,并且创建一个名为studentinfo的数据库

    现在 2021年04月26日11:05:08 ,趁今天有空把它搞完. 这里呢采用德鲁伊连接池哈 记得导包 1先上效果 ? ---- 2上截图 ? ? ? ?...import java.util.ArrayList; import java.util.List; import java.util.ResourceBundle; //接口名+Impl=当前类名 表示一个实现类...首先我们我们要解析文件 ResourceBundle resource = ResourceBundle.getBundle("/Student"); //解析文件以后我们文件内容存入数据库...null); } } @Override public void insert(Student student) { //解析文件以后我们文件内容存入数据库

    7.1K20

    MySQL索引背后的数据结构及算法原理MySQL索引背后的数据结构及算法原理MyISAM索引实现InnoDB索引实现

    而在InnoDB,表数据文件本身就是按B+Tree组织的一个索引结构,这棵树的叶节点data域保存了完整的数据记录。这个索引的key数据表的主键,因此InnoDB表数据文件本身就是主索引。...10 10InnoDB主索引(同时也是数据文件)的示意图,可以看到叶节点包含了完整的数据记录。这种索引叫做聚集索引。...则MySQL自动为InnoDB表生成一个隐含字段作为主键,这个字段长度为6个字节,类型为长整形。...例如,11为定义Col3上的一个辅助索引: ? 11 这里以英文字符的ASCII码作为比较准则。...再例如,用非单调的字段作为主键InnoDB不是个好主意,因为InnoDB数据文件本身一颗B+Tree,非单调的主键会造成插入新记录时数据文件为了维持B+Tree的特性而频繁的分裂调整,十分低效,

    52520

    索引的数据结构及算法原理--InnoDB索引实现

    而在InnoDB,表数据文件本身就是按B+Tree组织的一个索引结构,这棵树的叶节点data域保存了完整的数据记录。这个索引的key数据表的主键,因此InnoDB表数据文件本身就是主索引。...10InnoDB主索引(同时也是数据文件)的示意图,可以看到叶节点包含了完整的数据记录。这种索引叫做聚集索引。...则MySQL自动为InnoDB表生成一个隐含字段作为主键,这个字段长度为6个字节,类型为长整形。...例如,11为定义Col3上的一个辅助索引: 这里以英文字符的ASCII码作为比较准则。...再例如,用非单调的字段作为主键InnoDB不是个好主意,因为InnoDB数据文件本身一颗B+Tree,非单调的主键会造成插入新记录时数据文件为了维持B+Tree的特性而频繁的分裂调整,十分低效,

    63110

    40+个对初学者非常有用的PHP技巧(一)

    因为它们无法通过重定向发送(除非你将它们作为GET变量传播给下一个脚本,但这非常愚蠢)。而且大型脚本可能会有多个消息等。 最好的办法使用会话来传播(即使同一页面上)。...想要这样做的话每个页面上必须得有一个session_start。 ? 在你的脚本: ? 5.让函数变得灵活 ? 当添加单一条目时,使用上面的函数。那么当添加多个条目时,就得创建另一个函数?...那么,为什么你应该做输出缓冲呢: 你可以输出发送给浏览器之前更改它,如果你需要的话。...发送输出给浏览器,并在同一时间做php处理并不是好主意。你见过这样的网站,它有一个Fatal error侧边栏或在屏幕中间的方框?你知道为什么会出现这种情况?...9.为MySQL连接设置正确的字符编码 曾碰到过unicode/utf-8字符被正确地存储mysql表的问题,phpmyadmin也显示它们正确的,但是当你使用的时候,你的网页上却并不能正确地显示。

    88430

    40+个对初学者非常有用的PHP技巧(一)

    因为它们无法通过重定向发送(除非你将它们作为GET变量传播给下一个脚本,但这非常愚蠢)。而且大型脚本可能会有多个消息等。 最好的办法使用会话来传播(即使同一页面上)。...想要这样做的话每个页面上必须得有一个session_start。 ? 在你的脚本: ? 5.让函数变得灵活 ? 当添加单一条目时,使用上面的函数。那么当添加多个条目时,就得创建另一个函数?...那么,为什么你应该做输出缓冲呢: 你可以输出发送给浏览器之前更改它,如果你需要的话。...发送输出给浏览器,并在同一时间做php处理并不是好主意。你见过这样的网站,它有一个Fatal error侧边栏或在屏幕中间的方框?你知道为什么会出现这种情况?...9.为MySQL连接设置正确的字符编码 曾碰到过unicode/utf-8字符被正确地存储mysql表的问题,phpmyadmin也显示它们正确的,但是当你使用的时候,你的网页上却并不能正确地显示。

    98420

    事务降维的几种策略

    这是学习笔记的第 1935 篇文章 我们在工作很容易陷入一个漩涡,那就是因为并发事务选择了关系型数据库,因为关系型选择了MySQL,因为MySQL的业务特点而选择了对事务降维。...这在大多数场景下算是一件好事,说明我们对于事务的理解算是理性的,除此之外,我认为我们传统理解上的业务类型就不是非常合理,很多需求如果基于OLTP和OLAP其实业务场景很受限的,比如一个论坛业务,你说对事务的要求高...降维策略1:存储过程调用转换为透明的SQL调用 对于新业务而言,使用存储过程显然不是一个好主意MySQL存储过程和其他商业数据库相比,功能和性能都有待验证,而且现在轻量化的业务处理存储过程的处理方式太...降维策略2:Drop 操作转换为可逆的DDL操作 Drop操作默认提交的,而且不可逆的,在数据库操作中都是跑路的代名词,MySQL层面目前没有相应的drop操作恢复功能,除非通过备份来恢复,但是我们可以考虑...MySQL默认每个表有一个对应的ibd文件,其实可以把drop操作转换为一个rename操作,即可把文件从testdb迁移到testdb_arch下面,从权限上来说,testdb_arch业务不可见的

    59430

    论配置化系统的配置

    这个业务需求抽象后可以用下图表示业务流程,黄色方块主要和存储打交道,蓝色方块纯计算流程。...这整个流程完全可以用配置化方式解决: MQ消息的ETL配置描述需要的字段的path信息解析; 黄色方块的operator主要操作存储,需要在配置描述数据的存储以及获取相关的信息; 蓝色方块的operator...纯计算流程,配置描述schema格式即可; 最后再配个转发mq消息的配置,不到一小时支持了一个看起来有点复杂的业务需求,此时你就可以美滋滋的写周报去了~ 整个流程看起来无比丝滑,但是配置化系统银弹...如果我们目的之一不上线即可支持业务,那把配置信息写到文件里就不是个好主意,因为代码更新文件后还得经过上线流程,这样会降低效率,所以把配置存到db里。...配置的元信息存到MySQL后,你可以很快乐的写一些管理接口管理配置。 基于MySQL的备份机制还可以做配置信息备份,以防不测。 咋配 第二个问题 配置=简单

    38010

    fulltext mysql_mysql – FULLTEXT和FULLTEXT KEY INDEX有什么区别?

    我无法文档中找到任何线索: 解决方法: 省略索引名称 如果添加索引/键 对于表,MySQL将在指定的列(列集)上存储其他信息以加快搜索速度....您的第一个示例,MySQL生成一个索引并为其命名 my_index_name.如果省略名称,MySQL将为您选择一个.我找不到关于如何选择名称的文档,但根据我的经验,第一列的名称通常被重用作索引名称...仅提供全文就足够了: | {FULLTEXT|SPATIAL} [INDEX|KEY] [index_name] (index_col_name,…) [index_option] … 但是使用全文索引表格可能一个好主意...,因为读者会被提醒索引. index和key同义词 请注意,索引和键之间没有区别(请参阅create table): KEY is normally a synonym for INDEX....本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站立刻删除。

    41830

    WordPress 数据库详解

    本文中,我们将了解 WordPress 数据库是什么以及它是如何工作的。 WordPress 有数据库? 您可能已经知道,是的,WordPress 需要一个数据库。...什么 WordPress 数据库? WordPress 数据库一个 MySQL 数据库,它将您网站的数据存储到表、行和列。...phpMyAdmin 还记得我们如何提到您的数据库存储您网站的服务器上?因此,您必须通过托管服务提供商访问您的 WordPress 数据库。...但是,进行更改时要小心,这一点很重要。开始之前了解您想要完成的确切任务总是一个好主意。然后搜索一些教程或指南,它会告诉你在哪里可以找到你正在寻找的数据(以及你找到它时需要做什么)。... cPanel ,找到列表MySQL 数据库向导图标并单击它。MySQL 数据库向导引导您完成接下来的步骤。首先,添加新数据库的名称。 点击“下一步”。 接下来,添加一个数据库用户。

    5.3K40

    MySQL和Lucene(Elasticsearch)索引对比分析

    索引会被压缩放入内存用于加速搜索过程,这一点效率上完爆 MySQL 数据库的。...MySQL索引实现 MySQL,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式不同的,本文主要讨论MyISAM和InnoDB两个存储引擎的索引实现方式。...1一个MyISAM表的主索引(Primary key)示意。可以看出MyISAM的索引文件仅仅保存数据记录的地址。...例如,3为定义Col3上的一个辅助索引: ? 这里以英文字符的ASCII码作为比较准则。...再例如,用非单调的字段作为主键InnoDB不是个好主意,因为InnoDB数据文件本身一颗B+Tree,非单调的主键会造成插入新记录时数据文件为了维持B+Tree的特性而频繁的分裂调整,十分低效,

    1.2K30

    高性能 MySQL 第四版(GPT 重译)(三)

    表和索引统计信息 回想一下 MySQL 服务器架构的各个层次,我们 1-1 中进行了说明。服务器层包含查询优化器,不存储数据和索引的统计信息。...复制环拓扑 如果此拓扑的任何服务器下线,您的拓扑中断,更新停止环中传播。这种情况下还有附加的副本变体,其中 9-9 的每个源都有一个专用的副本可用于替换。...您可以通过多源复制实现这一点,两个数据集合再次合并到一个副本,如图 9-10 所示。 9-10. 多源复制 这个功能建立一个称为复制通道的概念之上。...如果备份 mysql 数据库,你备份大部分代码,但随后要完全恢复单个数据库将会很困难,因为该数据库的一些“数据”,如存储过程,实际上将存储 mysql 数据库。...如果你有包含各种语言的月份名称列表或州或地区缩写等数据的“查找”表,将它们放入单独的数据库可能好主意,这样你就不必一直备份它们。一个更好的选择这些数据移到代码而不是数据库

    14410

    MySQLMyISAM和InnoDB的索引方式以及区别与选择

    下图MyISAM的索引原理:(为了简化,一个页内只存放了两条记录。)...而对于二级索引, MyISAM存储引擎以与上图同样的方式实现,可以看出MyISAM的索引文件仅仅保存数据记录的地址。...注意: innodb来说, 1: 主键索引 既存储索引值,又在叶子存储行的数据 2: 如果没有主键, 则会Unique key做主键 3: 如果没有unique,则系统生成一个内部的rowid做主键....再例如,用非单调的字段作为主键InnoDB不是个好主意,因为InnoDB数据文件本身一颗B+Tree,非单调的主键会造成插入新记录时数据文件为了维持B+Tree的特性而频繁的分裂调整,十分低效,...3、该如何选用两个存储引擎呢 此处参考链接:MySQLMyISAM与InnoDB区别及选择 因为MyISAM相对简单所以效率上要优于InnoDB.如果系统读多,写少。对原子性要求低。

    70120

    MySQLMyISAM和InnoDB的索引方式以及区别与选择

    下图MyISAM的索引原理:(为了简化,一个页内只存放了两条记录。) ?...而对于二级索引, MyISAM存储引擎以与上图同样的方式实现,可以看出MyISAM的索引文件仅仅保存数据记录的地址。...注意: innodb来说, 1: 主键索引 既存储索引值,又在叶子存储行的数据 2: 如果没有主键, 则会Unique key做主键 3: 如果没有unique,则系统生成一个内部的rowid做主键....再例如,用非单调的字段作为主键InnoDB不是个好主意,因为InnoDB数据文件本身一颗B+Tree,非单调的主键会造成插入新记录时数据文件为了维持B+Tree的特性而频繁的分裂调整,十分低效,...3、该如何选用两个存储引擎呢 此处参考链接:MySQLMyISAM与InnoDB区别及选择 因为MyISAM相对简单所以效率上要优于InnoDB.如果系统读多,写少。对原子性要求低。

    66760

    MYSQL 8 分区表 靠谱 ? 2 细致性能分析 及业务场景应用

    上面的可以清晰的看到第一次信号线,的确指定 通过上面的查询可以通过人为的手段快速定位到p17分区并搜寻到指定的数据,也就是通过人为指向P17分区,利用local index 的方式查询数据。...我们看看着三个到底做什么 open tables MYSQL 操作表对于操作来说,本身表也是文件,那么打开文件,通过LINUX 获得句柄,这就是open tables 需要做的事情。...statistics 查询对于统计信息的收集,如果时间比较长的情况下,就的考虑此事正在进行statistics的收集了 freeing items 主要看上一个命令在做什么,closing tables...经过查询的分析,这里建议MYSQL使用分区表,如果使用hash的分区的方式进行查询,这并不是一个好主意,性能在一定量级上不及单表,而数据量大了,应该就采用其他的方案来解决了。...而如果range 或者 list 的方式来进行查询,指定分区的基础上,这的确是一个好主意。可以尝试使用。 纵观,MYSQL中使用分区表本身使用者就少并且这样的解决方案还是需要积累更多的实际的经验。

    1.1K20

    MySQL索引背后的数据结构及算法原理

    内节点不存储data,只存储key;叶子节点不存储指针。 3一个简单的B+Tree示意。 ? 3 由于并不是所有节点都具有相同的域,因此B+Tree中叶节点和内节点一般大小不同。...页计算机管理存储器的逻辑块,硬件及操作系统往往主存和磁盘存储区分割为连续的大小相等的块,每个存 储块称为一页(许多操作系统,页得大小通常为4k),主存和磁盘以页为单位交换数据。...这一章从理论角度讨论了与索引相关的数据结构与算法问题,下一章讨论B+Tree如何具体实现为MySQL索引,同时结合MyISAM和InnDB存储引擎介绍非聚集索引和聚集索引两种不同的索引实现形式。...MySQL索引实现 MySQL,索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式不同的,本文主要讨论MyISAM和InnoDB两个存储引擎的索引实现方式。...再例如,用非单调的字段作为主键InnoDB不是个好主意,因为 InnoDB数据文件本身一颗B+Tree,非单调的主键会造成插入新记录时数据文件为了维持B+Tree的特性而频繁的分裂调整,十分低效

    1.1K110

    如何在CentOS 7上安装和配置ownCloud

    本教程,我们演示CentOS 7服务器上安装和配置ownCloud。 准备 要完成本教程的步骤,您需要具备以下条件: 服务器上的sudo用户。...接下来,创建一个单独的MySQL用户帐户,该帐户将与新创建的数据库进行交互。从管理和安全角度来看,创建单功能数据库和帐户一个好主意。与数据库的命名一样,选择您喜欢的用户名。...单击“ 完成设置”按钮之前,单击“ 存储和数据库”链接: Data文件夹设置保持原样,然后单击Configure the database部分MySQL / MariaDB按钮。...输入您在上一步配置的数据库信息。下面一个示例,它与我们本教程中使用的数据库信息相匹配: 单击完成设置按钮以登录ownCloud。...结论 ownCloud可以替代流行的第三方云存储服务的功能。存储内容可以在用户之间共享,也可以在外部与公共URL共享,ownCloud的优点信息安全地存储您控制的位置。

    3.6K00

    如何在Ubuntu 18.04上安装最新的MySQL

    介绍 MySQL一个着名的开源数据库管理系统,用于存储和检索各种流行应用程序的数据。...该L标志使得curl遵循HTTP重定向,在这种情况下必需的,因为我们复制的地址实际上文件下载之前将我们重定向到另一个位置。 该文件现在应该下载到我们当前的目录。...安装过程,您将看到一个配置屏幕,您可以在其中指定您喜欢的MySQL版本,以及为其他MySQL相关工具安装存储库的选项。默认值添加最新稳定版MySQL存储库信息,而不是其他任何内容。...系统询问您是否删除匿名 MySQL用户,禁止远程root登录,删除测试数据库以及重新加载权限表以确保先前的更改正常生效。这些都是个好主意。输入y并为每个项目点击ENTER。...回答完所有提示后,脚本退出。现在我们的MySQL安装合理安全的。让我们通过运行连接到服务器的客户端再次测试它并返回一些信息。

    2.3K21
    领券