Neo4j---性能优化
不会项目管理的研发不是好loder(^_^ ^_^),开个玩笑,目的是想说项目管理很重要,研发同胞们需要重视、重视、重视(重要的事情说三遍)。随着项目业务扩展,不再是停留在基本某一业务范围,海量数据接踵而至,接口性能明显出现瓶颈,性能优化迫在眉睫。。。
一、基础调优
1、cql语句性能排查
(1)EXPLAIN + 执行的cql语句
仅仅查看执行计划,不执行语句
(2)PROFILE + 执行的cql语句
运行语句,并全程监督资源使用情况
(3)查看索引创建情况
:schema
2、 使用建议
1)相关主键创建索引 语法格式CREATE INDEX ON: 标签(待查字段);
①模式索引:模式索引和关系数据库中的索引很相似, 每一个索引会对应一个标签和一组属性,无论是更新还是删除节点,索引都会自动更新或者删除,因此该种创建索引的方式更适用。
注意:索引状态是ONLINE才能生效,否则刚刚建的索引是无效的。
2)创建唯一索引,避免数据入库检查,造成性能浪费(可以在入库之前校验好数据的完整性和唯一性)CREATE CONSTRAINT ON (n:ResNode) ASSERT n.id IS UNIQUE;
3)create 和 merge的区别 MERGE命令是CREATE命令和MATCH命令的组合。 MERGE = CREATE + MATCH 故新增节点尽量避免merge;
4)不必要的数据,尽可能早的过滤掉,减少后期处理的数据量;
5)避免返回整个节点,返回其中需要的数据。
二、优化neo4j配置文件
对neo4j.conf文件并进行相应修改。通过添加jvm虚拟环境可以提高数据库的查询速度,即取消neo4j配置文件中关于dbms.memory.heap.initial_size=512m;dbms.memory.heap.max_size=512m两行的注释,并做合适的修改(最大堆内存越大越好,但是要小于机器的物理内存)。
三、进阶方案解决性能问题
1、合理引入中间件
eg:涉及内容关键字检索,可以使用elasticSearch,避免直接从neo4j搜索查询,若能结合redis及内存缓存获取详细资源信息,搜索只返回主键,还能进一步提交查询效率,用户体验大幅提升;
涉及大量查询可以使用redis作为neo4j的一个缓存库,既能提高性能,也能避免neo4j的资源消耗;
2、分库存储,充分利用neo4j的图存储和查询特点,neo4j中只提供图的存储和查询功能,节点的属性信息保存在mongodb(或其他NoSql 数据库中---字段可以直接存储)进行关联查询,各取所长,充分利优势,优化性能;
3、使用neo4j企业版高可用、集群方案,适用于不差钱的企业组织哈。
感谢阅读,如需转载,请注明出处https://www.cnblogs.com/huyangshu-fs/p/12651919.html
Neo4j---性能优化的更多相关文章
- 01.SQLServer性能优化之----强大的文件组----分盘存储
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 文章内容皆自己的理解,如有不足之处欢迎指正~谢谢 前天有学弟问逆天:“逆天,有没有一种方 ...
- 03.SQLServer性能优化之---存储优化系列
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 概 述:http://www.cnblogs.com/dunitian/p/60413 ...
- Web性能优化:What? Why? How?
为什么要提升web性能? Web性能黄金准则:只有10%~20%的最终用户响应时间花在了下载html文档上,其余的80%~90%时间花在了下载页面组件上. web性能对于用户体验有及其重要的影响,根据 ...
- Web性能优化:图片优化
程序员都是懒孩子,想直接看自动优化的点:传送门 我自己的Blog:http://cabbit.me/web-image-optimization/ HTTP Archieve有个统计,图片内容已经占到 ...
- C#中那些[举手之劳]的性能优化
隔了很久没写东西了,主要是最近比较忙,更主要的是最近比较懒...... 其实这篇很早就想写了 工作和生活中经常可以看到一些程序猿,写代码的时候只关注代码的逻辑性,而不考虑运行效率 其实这对大多数程序猿 ...
- JavaScript性能优化
如今主流浏览器都在比拼JavaScript引擎的执行速度,但最终都会达到一个理论极限,即无限接近编译后程序执行速度. 这种情况下决定程序速度的另一个重要因素就是代码本身. 在这里我们会分门别类的介绍J ...
- 02.SQLServer性能优化之---牛逼的OSQL----大数据导入
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 上一篇:01.SQLServer性能优化之----强大的文件组----分盘存储 http ...
- C++ 应用程序性能优化
C++ 应用程序性能优化 eryar@163.com 1. Introduction 对于几何造型内核OpenCASCADE,由于会涉及到大量的数值算法,如矩阵相关计算,微积分,Newton迭代法解方 ...
- Android性能优化之利用LeakCanary检测内存泄漏及解决办法
前言: 最近公司C轮融资成功了,移动团队准备扩大一下,需要招聘Android开发工程师,陆陆续续面试了几位Android应聘者,面试过程中聊到性能优化中如何避免内存泄漏问题时,很少有人全面的回答上来. ...
- 前端性能优化的另一种方式——HTTP2.0
最近在读一本书叫<web性能权威指南>谷歌公司高性能团队核心成员的权威之作. 一直听说HTTP2.0,对此也仅仅是耳闻,没有具体研读过,这次正好有两个篇章,分别讲HTTP1.1和HTTP2 ...
随机推荐
- jdk 功能变化
JDK的变化 JDK1.5 JDK1.6 jdk1.7 1. 添加自动装箱,拆箱 1. =后可以省略泛型, 见ArrayList 2. try后加一个(), 定义流对象,作用域在try里 jdk1 ...
- CentOS7系统使用rpm方式安装MySQL5.7
参考:https://blog.csdn.net/wudinaniya/article/details/81094578 1.首先去mysql官网下载rpm包,一个是server包一个是client包 ...
- 力扣Leetcode 572. 另一个树的子树
另一个树的子树 给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树.s 的一个子树包括 s 的一个节点和这个节点的所有子孙.s 也可以看做它自身的一棵子树. 示例 ...
- js中使用const声明变量时需要注意
const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址(初始化的内容)不得改动.对于简单类型的数据(数值.字符串.布尔值),值就保存在变量指向的那个内存地址,因此等同于常量. 简单 ...
- Android开发之将Edittext输入弹出的软键盘设置搜索确定键。详细代码,已验证可用。
1,首先在布局中添加 android:imeOptions="actionSearch 2,然后java代码中设置代码: et_input_password.setOnEditorActio ...
- Unity使用可空类型(Nullable Types)
译林军 范春彦|2014-04-09 09:46|5407次浏览|Unity(375)0 你怎么确定一个Vector3,int,或float变量是否被分配了一个值?一个方便的方式就是使用可空类型! 有 ...
- 2020 最新python入门知识
1. 基础语法 1.1 注释 在编写代码的时候,有些代码不需要执行或增加代码说明,那么就需要用到注释了. 被注释的文本或代码是不会被执行的. 注释可以使用如下三种方式: # 号 # 第一个注释,本行代 ...
- Agumaster 增加日交易数据列表
- 沉珂日重的Java项目 Spring真的帮到我们了吗?
开局三连图. 这是刚开始时的程序结构,虽清晰已经有混乱的前兆. 业务增加,人员增加后就会沉珂日重. 几年后,最后的模样会让使用者和维护者都很无奈. 人们喜欢把Java程序的层次结构比作建筑,实际却最像 ...
- leetcode刷题-91解码方法
题目 一条包含字母 A-Z 的消息通过以下方式进行了编码: 'A' -> 1'B' -> 2...'Z' -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数. 示例 1: ...