SlideShare uma empresa Scribd logo
1 de 57
© 2022 Neo4j, Inc. All rights reserved.
Top 10 Cypher
(Tuning) Tips & Tricks
Michael Hunger,
Senior Director, User
Innovation
© 2022 Neo4j, Inc. All rights reserved.
3
Why should I care?
1 2
Efficiency Readability
3 4
Resources Network
© 2022 Neo4j, Inc. All rights reserved.
5
Dataset - (All of) StackOverflow
https://demo.neo4jlabs.com:7473
username/password/database: stackoverflow
51M nodes
124M relationships
© 2022 Neo4j, Inc. All rights reserved.
© 2022 Neo4j, Inc. All rights reserved.
6
1. PROFILE
© 2022 Neo4j, Inc. All rights reserved.
7
1. Profile
• PROFILE and EXPLAIN show you the query plan
• All Operators – Index lookups, Expand, Projection, …
• Cardinality (rows) - multiplicative
• DB-Hits (measure of cost)
• Avoid Eager for Updates
• Shows Memory Usage
• Best if you can stream through and shortcut (e.g. LIMIT)
• avoid aggregation / sorting / collect if you can
© 2022 Neo4j, Inc. All rights reserved.
8
PROFILE
PROFILE
MATCH (t:Tag)<-[:TAGGED]-(q:Question)
RETURN t.name, count(*) AS c
ORDER BY c DESC LIMIT 10
// Cypher version: CYPHER 4.4,
// planner: COST,
// runtime: PIPELINED.
// 97726446 total db hits
// in 29387 ms
© 2022 Neo4j, Inc. All rights reserved.
© 2022 Neo4j, Inc. All rights reserved.
9
2. Properties
© 2022 Neo4j, Inc. All rights reserved.
10
2. Properties
• Property reads are more expensive than they should be
• Avoid them if possible, or defer to the latest moment
• When you have narrowed down the data to what you want to return
• Elevate properties to labels or rel-types can speed up a lot
• E.g. boolean, status properties as labels
• Sub-Structure of rel-properties to Rel-Types (e.g. year of a datetime)
• Use indexes, properties can be read from the index (except for points)
which is much faster (need indicate type)
© 2022 Neo4j, Inc. All rights reserved.
11
PROFILE
PROFILE
MATCH (t:Tag)<-[:TAGGED]-(q:Question)
WITH t, count(*) AS c
ORDER BY c DESC LIMIT 10
RETURN t.name, c
// 97526566 total db hits
// in 29831 ms.
© 2022 Neo4j, Inc. All rights reserved.
© 2022 Neo4j, Inc. All rights reserved.
12
3. Relationships
© 2022 Neo4j, Inc. All rights reserved.
13
Relationships
• Avoid traversing relationships if you can, each is O(1) but all are O(n)
• Always provide rel-type and direction
• Don’t traverse across supernodes, check “against” them
• Use get-degree (size(pattern)) without end label to get fast reads
• Elevate properties to rel-type for speedups
• Use relationship-indexes for global lookups or
• Add source/target key/property to index for node-centric indexes
© 2022 Neo4j, Inc. All rights reserved.
14
PROFILE
PROFILE
MATCH (t:Tag)
WITH t, size([p=(t)<-[:TAGGED]-()|p]) AS c
ORDER BY c DESC LIMIT 10
RETURN t.name, c
// 104911 total db hits in 195 ms
© 2022 Neo4j, Inc. All rights reserved.
© 2022 Neo4j, Inc. All rights reserved.
15
4. Indexes & Constraints
© 2022 Neo4j, Inc. All rights reserved.
16
PROFILE
PROFILE
MATCH (t:Tag)
RETURN t.name, t.count AS c
ORDER BY c DESC LIMIT 10
// 157356 total db hits in 66 ms
© 2022 Neo4j, Inc. All rights reserved.
17
PROFILE
PROFILE
MATCH (t:Tag)
// type triggers index usage
WHERE t.count > 0
RETURN t.name, t.count AS c
ORDER BY c DESC LIMIT 10
// 32 total db hits in 1 ms.
© 2022 Neo4j, Inc. All rights reserved.
18
Types & Uses of indexes and constraints
1 2
Lookup
Ranges
Type Scans
3 4
Sorting
Aggregation
Uniqueness
Existence
© 2022 Neo4j, Inc. All rights reserved.
19
Indexes & Constraints
• show indexes
• show constraints
• create <type> index/constraint <name> IF NOT EXISTS ON (x) FOR
(prop)
• todo docs
© 2022 Neo4j, Inc. All rights reserved.
20
Indexes & Constraints
• lookup
• lookup in list
• lookup range
• don't read from property store
• sorting / aggregation
• compound indexes (one range, rest equality)
◦ NOM type
• relationship(type) indexes
◦ global lookup by attribute / range
◦ simulate node-centric indexes index start/end-node id or property
© 2022 Neo4j, Inc. All rights reserved.
© 2022 Neo4j, Inc. All rights reserved.
21
neo4j.com/docs/cypher-manual/current/query-tuning/using/
5. Query Hints
© 2022 Neo4j, Inc. All rights reserved.
22
Query Hints
• shouldn't be needed
• but planner is not smart enough (yet)
• use rarely, first try without
• USING INDEX [SEEK] - force index usage (also for relationships)
• USING JOIN ON - force hash join for two high-cardinality sides
◦ example with LDBC
• USING SCAN ON - force label scan if very selective label
© 2022 Neo4j, Inc. All rights reserved.
23
INDEX Hint
PROFILE
MATCH (t:Tag)
WHERE t.count > 0
USING INDEX :Tag(count)
RETURN t.name, t.count AS c
ORDER BY c DESC LIMIT 10
// 32 total db hits in 1 ms.
© 2022 Neo4j, Inc. All rights reserved.
© 2022 Neo4j, Inc. All rights reserved.
24
4. Var Length Queries
© 2022 Neo4j, Inc. All rights reserved.
25
4. Var Length Queries
• Traverse arbitrary length paths / trees
• Limit length if possible
• Pruning Var-Length Expand ( on distinct end nodes )
• Shortest Path ( can also be used as condition )
© 2022 Neo4j, Inc. All rights reserved.
26
Var Length Example
profile
MATCH (u:User {name:'meistermeier'})-
[:POSTED|ACCEPTED|ANSWERED*..5]-(u2:User)
RETURN count(u)
// 569.130 total db hits
© 2022 Neo4j, Inc. All rights reserved.
27
Var Length Example
profile
MATCH (u:User {name:'meistermeier'})-
[:POSTED|ACCEPTED|ANSWERED*..5]-(u2:User)
RETURN count(distinct u)
// 217.347 total db hits
© 2022 Neo4j, Inc. All rights reserved.
28
Triadic Closure Example
profile
MATCH (u:User {name:'meistermeier‘})
--()--(u2:User)
WHERE NOT (u)--(u2)
RETURN count(distinct u)
// 810 total db total db hits
© 2022 Neo4j, Inc. All rights reserved.
© 2022 Neo4j, Inc. All rights reserved.
29
5. Fun with Lists
© 2022 Neo4j, Inc. All rights reserved.
30
5. Fun with Lists
• Like in Python
• [ elem IN list WHERE pred(elem) | expr(elem) ]
• Result is a list again
• Quantors
• all/single/none/any(x IN list WHERE pred(element))
• List into rows: UNWIND list AS elem
• Rows into list: collect(elem) AS list
© 2022 Neo4j, Inc. All rights reserved.
© 2022 Neo4j, Inc. All rights reserved.
31
6. Map Projections
© 2022 Neo4j, Inc. All rights reserved.
32
5. Map Projections
• Idea borrowed from GraphQL
• Map expression - node/relationship/map as expression
• var { .* } // all properties
• var {.property1, .property2}
• var {value} // key = „value“
• var {name: expression} // any expression, incl. map/list
• collect map expression to get list of documents
• You can use map { .*, foo : null } to remove properties from a map
(e.g. for LOAD CSV)
© 2022 Neo4j, Inc. All rights reserved.
33
5. Map Projections
MATCH (u:User {name:'meistermeier‘})
-[:POSTED]->()-[:ANSWERED]->(q)-[:TAGGED]->(tag)
WITH q, collect(tag.name) as tags
RETURN q { .title, .answers, .views, tags, } as question
© 2022 Neo4j, Inc. All rights reserved.
© 2022 Neo4j, Inc. All rights reserved.
34
7. Pattern
Comprehensions
© 2022 Neo4j, Inc. All rights reserved.
35
6. Pattern Comprehensions
• Idea borrowed from GraphQL
• Pattern comprehension = like list comprehension just for patterns
• Pattern (can introduce new local variables)
• Filter
• Expression
• [ (pattern)-[of:SOME]->(nodes) WHERE filter | expression ]
• Result is list of the expression
• Expressions can be pattern comprehensions again or map expressions
• Not well planned (indexes etc)
• No sorting / pagination / pushdown
© 2022 Neo4j, Inc. All rights reserved.
36
6. Pattern Comprehensions
MATCH (u:User {name:'meistermeier‘})
RETURN [(u)-[:POSTED]->()-[:ANSWERED]->(q) |
q { .title, .answers, .views }] as questions
© 2022 Neo4j, Inc. All rights reserved.
© 2022 Neo4j, Inc. All rights reserved.
37
8. Subqueries
© 2022 Neo4j, Inc. All rights reserved.
38
6. Subqueries
• Added in 4.0/4.1
• CALL { WITH var MATCH … RETURN var2 } …
• Existential subqueries EXISTS {}
• Can not shadow variables in RETURN
• Dependent or independent
• Still participate in cardinality but can change it
• Properly planned, unlike pattern comprehensions -> can rewrite
© 2022 Neo4j, Inc. All rights reserved.
© 2022 Neo4j, Inc. All rights reserved.
39
9. Batched Updates
© 2022 Neo4j, Inc. All rights reserved.
40
7. Batched Updates
• Avoid transaction sizes exceed available memory
• Update in smaller chunks e.g. 50k updates per tx
• (2/3G heap per 1M updates in a tx)
• 3 options
◦ Send chunks (list of dicts) from client: UNWIND $data AS row …
◦ CALL {} IN TRANSACTIONS [OF 50000 ROWS]
◦ APOC apoc.periodic.iterate
• USING PERIODIC COMMIT is deprecated
• Avoid the Eager
© 2022 Neo4j, Inc. All rights reserved.
41
7. Avoid the Eager
• To isolate dependent reads from writes
• Cypher injects an Eager operator that
• pulls ALL rows through that happen before the operator
• Which can use a lot of memory,
• and can disable transaction batching
• Avoided through:
• Multi-pass
© 2022 Neo4j, Inc. All rights reserved.
42
9. Might help to
• To isolate dependent reads from writes
• Cypher injects an Eager operator that
• pulls ALL rows through that happen before the operator
• Which can use a lot of memory, and can disable batching
© 2022 Neo4j, Inc. All rights reserved.
© 2022 Neo4j, Inc. All rights reserved.
43
10. User Defined
Procedures & Functions
© 2022 Neo4j, Inc. All rights reserved.
44
10. User Defined Procedures & Functions
• Lego blocks to combine inside a Cypher query
• Procedure libraries like APOC cover a wide range of utilities (have a look)
• Refactoring
• Data integration
• Import
• Map/collection/datetime functions
• SHOW PROCEDURES / FUNCTIONS / call apoc.help(„text“)
• CALL procedure(arg1, arg2) YIELD col1, col2
© 2022 Neo4j, Inc. All rights reserved.
45
10. User Defined Procedures & Functions
© 2022 Neo4j, Inc. All rights reserved.
© 2022 Neo4j, Inc. All rights reserved.
46
11. Upcoming – Path
Filters
© 2022 Neo4j, Inc. All rights reserved.
47
11. Upcoming – Path Filters
• Working towards GQL support
• Inline WHERE predicates for nodes, relationships (5.0)
• Future: predicates for pattern
• Quantifier for patterns / subpatterns
© 2022 Neo4j, Inc. All rights reserved.
48
Learn more
1 2
Docs
neo4j.com/docs/cypher-
manual/current/query-tuning/
Course
neo4j.com/graphacademy/training-cqt-40/
3 4
Refcard
neo4j.com/docs/cypher-refcard
Community
community.neo4j.com
© 2022 Neo4j, Inc. All rights reserved.
49
Q&A
© 2022 Neo4j, Inc. All rights reserved.
50
Thank you!
Contact us at
sales@neo4j.com
© 2022 Neo4j, Inc. All rights reserved.
© 2022 Neo4j, Inc. All rights reserved.
51
Split 3rds - bullets
When using bullets on the left ,
select all the bullets and use:
Add space after list item
to visually separate them
Example of bullets:
• Short point
here not more
than 3 lines
• Another point
which is not too
long
• Short and
sweet
© 2022 Neo4j, Inc. All rights reserved.
© 2022 Neo4j, Inc. All rights reserved.
52
Neo4j Aura Enterprise is allowing us to realize our
vision to build a knowledge graph that unifies all
product knowledge to improve our retail
recommendations, search and merchandising.”
“
- Name and position, Company
© 2022 Neo4j, Inc. All rights reserved.
53
Special slides examples
1 2
Arial
Extra Bold 86pt
for big numbers
Arial
Normal 14pt for
small text
3 4
Arial
Extra Bold 86pt
for big numbers
Arial
Normal 14pt for
small text
© 2022 Neo4j, Inc. All rights reserved.
© 2022 Neo4j, Inc. All rights reserved.
54
Thing to compare 2
Thing to compare 1
• Comparison 1
• Comparison 2
◦ Details
• Comparison 1
• Comparison 2
◦ Details
© 2022 Neo4j, Inc. All rights reserved.
55
1. Use Media Slide from Master
2. Image is cropped at width
4.62in, so it takes up half of
the slide (and aligned with
blue rectangle on the left)
Media
© 2022 Neo4j, Inc. All rights reserved.
56
Image Placeholder
© 2022 Neo4j, Inc. All rights reserved.
© 2022 Neo4j, Inc. All rights reserved.
57
© 2022 Neo4j, Inc. All rights reserved.
58
Your Logo Here
© 2022 Neo4j, Inc. All rights reserved.
59
59
Your Logo Here

Mais conteúdo relacionado

Mais procurados

GPT and Graph Data Science to power your Knowledge Graph
GPT and Graph Data Science to power your Knowledge GraphGPT and Graph Data Science to power your Knowledge Graph
GPT and Graph Data Science to power your Knowledge GraphNeo4j
 
Boost Your Neo4j with User-Defined Procedures
Boost Your Neo4j with User-Defined ProceduresBoost Your Neo4j with User-Defined Procedures
Boost Your Neo4j with User-Defined ProceduresNeo4j
 
Neo4j in Production: A look at Neo4j in the Real World
Neo4j in Production: A look at Neo4j in the Real WorldNeo4j in Production: A look at Neo4j in the Real World
Neo4j in Production: A look at Neo4j in the Real WorldNeo4j
 
Neo4j 4 Overview
Neo4j 4 OverviewNeo4j 4 Overview
Neo4j 4 OverviewNeo4j
 
Data Modeling with Neo4j
Data Modeling with Neo4jData Modeling with Neo4j
Data Modeling with Neo4jNeo4j
 
Will Lyon- Entity Resolution
Will Lyon- Entity ResolutionWill Lyon- Entity Resolution
Will Lyon- Entity ResolutionNeo4j
 
Neo4j Bloom: What’s New with Neo4j's Data Visualization Tool
Neo4j Bloom: What’s New with Neo4j's Data Visualization ToolNeo4j Bloom: What’s New with Neo4j's Data Visualization Tool
Neo4j Bloom: What’s New with Neo4j's Data Visualization ToolNeo4j
 
Adobe Behance Scales to Millions of Users at Lower TCO with Neo4j
Adobe Behance Scales to Millions of Users at Lower TCO with Neo4jAdobe Behance Scales to Millions of Users at Lower TCO with Neo4j
Adobe Behance Scales to Millions of Users at Lower TCO with Neo4jNeo4j
 
Neo4j 4.1 overview
Neo4j 4.1 overviewNeo4j 4.1 overview
Neo4j 4.1 overviewNeo4j
 
Neo4j Fundamentals
Neo4j FundamentalsNeo4j Fundamentals
Neo4j FundamentalsMax De Marzi
 
Workshop Introduction to Neo4j
Workshop Introduction to Neo4jWorkshop Introduction to Neo4j
Workshop Introduction to Neo4jNeo4j
 
Intermediate Cypher.pdf
Intermediate Cypher.pdfIntermediate Cypher.pdf
Intermediate Cypher.pdfNeo4j
 
Neo4j GraphSummit London March 2023 Emil Eifrem Keynote.pptx
Neo4j GraphSummit London March 2023 Emil Eifrem Keynote.pptxNeo4j GraphSummit London March 2023 Emil Eifrem Keynote.pptx
Neo4j GraphSummit London March 2023 Emil Eifrem Keynote.pptxNeo4j
 
Volvo Cars - Retrieving Safety Insights using Graphs (GraphSummit Stockholm 2...
Volvo Cars - Retrieving Safety Insights using Graphs (GraphSummit Stockholm 2...Volvo Cars - Retrieving Safety Insights using Graphs (GraphSummit Stockholm 2...
Volvo Cars - Retrieving Safety Insights using Graphs (GraphSummit Stockholm 2...Neo4j
 
The Knowledge Graph Explosion
The Knowledge Graph ExplosionThe Knowledge Graph Explosion
The Knowledge Graph ExplosionNeo4j
 
Intro to Graphs and Neo4j
Intro to Graphs and Neo4jIntro to Graphs and Neo4j
Intro to Graphs and Neo4jjexp
 
GSK: How Knowledge Graphs Improve Clinical Reporting Workflows
GSK: How Knowledge Graphs Improve Clinical Reporting WorkflowsGSK: How Knowledge Graphs Improve Clinical Reporting Workflows
GSK: How Knowledge Graphs Improve Clinical Reporting WorkflowsNeo4j
 
Workshop - Build a Graph Solution
Workshop - Build a Graph SolutionWorkshop - Build a Graph Solution
Workshop - Build a Graph SolutionNeo4j
 
The Data Platform for Today’s Intelligent Applications
The Data Platform for Today’s Intelligent ApplicationsThe Data Platform for Today’s Intelligent Applications
The Data Platform for Today’s Intelligent ApplicationsNeo4j
 
How Expedia’s Entity Graph Powers Global Travel
How Expedia’s Entity Graph Powers Global TravelHow Expedia’s Entity Graph Powers Global Travel
How Expedia’s Entity Graph Powers Global TravelNeo4j
 

Mais procurados (20)

GPT and Graph Data Science to power your Knowledge Graph
GPT and Graph Data Science to power your Knowledge GraphGPT and Graph Data Science to power your Knowledge Graph
GPT and Graph Data Science to power your Knowledge Graph
 
Boost Your Neo4j with User-Defined Procedures
Boost Your Neo4j with User-Defined ProceduresBoost Your Neo4j with User-Defined Procedures
Boost Your Neo4j with User-Defined Procedures
 
Neo4j in Production: A look at Neo4j in the Real World
Neo4j in Production: A look at Neo4j in the Real WorldNeo4j in Production: A look at Neo4j in the Real World
Neo4j in Production: A look at Neo4j in the Real World
 
Neo4j 4 Overview
Neo4j 4 OverviewNeo4j 4 Overview
Neo4j 4 Overview
 
Data Modeling with Neo4j
Data Modeling with Neo4jData Modeling with Neo4j
Data Modeling with Neo4j
 
Will Lyon- Entity Resolution
Will Lyon- Entity ResolutionWill Lyon- Entity Resolution
Will Lyon- Entity Resolution
 
Neo4j Bloom: What’s New with Neo4j's Data Visualization Tool
Neo4j Bloom: What’s New with Neo4j's Data Visualization ToolNeo4j Bloom: What’s New with Neo4j's Data Visualization Tool
Neo4j Bloom: What’s New with Neo4j's Data Visualization Tool
 
Adobe Behance Scales to Millions of Users at Lower TCO with Neo4j
Adobe Behance Scales to Millions of Users at Lower TCO with Neo4jAdobe Behance Scales to Millions of Users at Lower TCO with Neo4j
Adobe Behance Scales to Millions of Users at Lower TCO with Neo4j
 
Neo4j 4.1 overview
Neo4j 4.1 overviewNeo4j 4.1 overview
Neo4j 4.1 overview
 
Neo4j Fundamentals
Neo4j FundamentalsNeo4j Fundamentals
Neo4j Fundamentals
 
Workshop Introduction to Neo4j
Workshop Introduction to Neo4jWorkshop Introduction to Neo4j
Workshop Introduction to Neo4j
 
Intermediate Cypher.pdf
Intermediate Cypher.pdfIntermediate Cypher.pdf
Intermediate Cypher.pdf
 
Neo4j GraphSummit London March 2023 Emil Eifrem Keynote.pptx
Neo4j GraphSummit London March 2023 Emil Eifrem Keynote.pptxNeo4j GraphSummit London March 2023 Emil Eifrem Keynote.pptx
Neo4j GraphSummit London March 2023 Emil Eifrem Keynote.pptx
 
Volvo Cars - Retrieving Safety Insights using Graphs (GraphSummit Stockholm 2...
Volvo Cars - Retrieving Safety Insights using Graphs (GraphSummit Stockholm 2...Volvo Cars - Retrieving Safety Insights using Graphs (GraphSummit Stockholm 2...
Volvo Cars - Retrieving Safety Insights using Graphs (GraphSummit Stockholm 2...
 
The Knowledge Graph Explosion
The Knowledge Graph ExplosionThe Knowledge Graph Explosion
The Knowledge Graph Explosion
 
Intro to Graphs and Neo4j
Intro to Graphs and Neo4jIntro to Graphs and Neo4j
Intro to Graphs and Neo4j
 
GSK: How Knowledge Graphs Improve Clinical Reporting Workflows
GSK: How Knowledge Graphs Improve Clinical Reporting WorkflowsGSK: How Knowledge Graphs Improve Clinical Reporting Workflows
GSK: How Knowledge Graphs Improve Clinical Reporting Workflows
 
Workshop - Build a Graph Solution
Workshop - Build a Graph SolutionWorkshop - Build a Graph Solution
Workshop - Build a Graph Solution
 
The Data Platform for Today’s Intelligent Applications
The Data Platform for Today’s Intelligent ApplicationsThe Data Platform for Today’s Intelligent Applications
The Data Platform for Today’s Intelligent Applications
 
How Expedia’s Entity Graph Powers Global Travel
How Expedia’s Entity Graph Powers Global TravelHow Expedia’s Entity Graph Powers Global Travel
How Expedia’s Entity Graph Powers Global Travel
 

Semelhante a Top 10 Cypher Tuning Tips & Tricks

Master Real-Time Streams With Neo4j and Apache Kafka
Master Real-Time Streams With Neo4j and Apache KafkaMaster Real-Time Streams With Neo4j and Apache Kafka
Master Real-Time Streams With Neo4j and Apache KafkaNeo4j
 
002 Introducing Neo4j 5 for Administrators - NODES2022 AMERICAS Beginner 2 - ...
002 Introducing Neo4j 5 for Administrators - NODES2022 AMERICAS Beginner 2 - ...002 Introducing Neo4j 5 for Administrators - NODES2022 AMERICAS Beginner 2 - ...
002 Introducing Neo4j 5 for Administrators - NODES2022 AMERICAS Beginner 2 - ...Neo4j
 
Less07 schema
Less07 schemaLess07 schema
Less07 schemaImran Ali
 
Leveraging Neo4j With Apache Spark
Leveraging Neo4j With Apache SparkLeveraging Neo4j With Apache Spark
Leveraging Neo4j With Apache SparkNeo4j
 
Fun with Fabric in 15
Fun with Fabric in 15Fun with Fabric in 15
Fun with Fabric in 15Neo4j
 
Upcoming changes in MySQL 5.7
Upcoming changes in MySQL 5.7Upcoming changes in MySQL 5.7
Upcoming changes in MySQL 5.7Morgan Tocker
 
Introduction of security in neo4j database
Introduction of security in neo4j databaseIntroduction of security in neo4j database
Introduction of security in neo4j databasesetarehkhodarahmi
 
MySQL Optimizer: What's New in 8.0
MySQL Optimizer: What's New in 8.0MySQL Optimizer: What's New in 8.0
MySQL Optimizer: What's New in 8.0Manyi Lu
 
pyjamas22_ generic composite in python.pdf
pyjamas22_ generic composite in python.pdfpyjamas22_ generic composite in python.pdf
pyjamas22_ generic composite in python.pdfAsher Sterkin
 
What's New MySQL 8.0?
What's New MySQL 8.0?What's New MySQL 8.0?
What's New MySQL 8.0?OracleMySQL
 
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.Geir Høydalsvik
 
ADBA (Asynchronous Database Access)
ADBA (Asynchronous Database Access)ADBA (Asynchronous Database Access)
ADBA (Asynchronous Database Access)Logico
 
O365Engage17 - Building portals with microsoft graph api
O365Engage17 - Building portals with microsoft graph apiO365Engage17 - Building portals with microsoft graph api
O365Engage17 - Building portals with microsoft graph apiNCCOMMS
 
Node.js and the MySQL Document Store
Node.js and the MySQL Document StoreNode.js and the MySQL Document Store
Node.js and the MySQL Document StoreRui Quelhas
 
Hadoop User Group Ireland (HUG) Ireland - Eddie Baggot Presentation April 2016
Hadoop User Group Ireland (HUG) Ireland - Eddie Baggot Presentation April 2016Hadoop User Group Ireland (HUG) Ireland - Eddie Baggot Presentation April 2016
Hadoop User Group Ireland (HUG) Ireland - Eddie Baggot Presentation April 2016John Mulhall
 
MySQL 5.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014MySQL 5.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014Dave Stokes
 
Introduction to Sightly and Sling Models
Introduction to Sightly and Sling ModelsIntroduction to Sightly and Sling Models
Introduction to Sightly and Sling ModelsStefano Celentano
 
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...Jean Ihm
 
Powerful Spatial Features You Never Knew Existed in Oracle Spatial and Graph ...
Powerful Spatial Features You Never Knew Existed in Oracle Spatial and Graph ...Powerful Spatial Features You Never Knew Existed in Oracle Spatial and Graph ...
Powerful Spatial Features You Never Knew Existed in Oracle Spatial and Graph ...Jean Ihm
 

Semelhante a Top 10 Cypher Tuning Tips & Tricks (20)

Master Real-Time Streams With Neo4j and Apache Kafka
Master Real-Time Streams With Neo4j and Apache KafkaMaster Real-Time Streams With Neo4j and Apache Kafka
Master Real-Time Streams With Neo4j and Apache Kafka
 
002 Introducing Neo4j 5 for Administrators - NODES2022 AMERICAS Beginner 2 - ...
002 Introducing Neo4j 5 for Administrators - NODES2022 AMERICAS Beginner 2 - ...002 Introducing Neo4j 5 for Administrators - NODES2022 AMERICAS Beginner 2 - ...
002 Introducing Neo4j 5 for Administrators - NODES2022 AMERICAS Beginner 2 - ...
 
Less07 schema
Less07 schemaLess07 schema
Less07 schema
 
Leveraging Neo4j With Apache Spark
Leveraging Neo4j With Apache SparkLeveraging Neo4j With Apache Spark
Leveraging Neo4j With Apache Spark
 
Fun with Fabric in 15
Fun with Fabric in 15Fun with Fabric in 15
Fun with Fabric in 15
 
Upcoming changes in MySQL 5.7
Upcoming changes in MySQL 5.7Upcoming changes in MySQL 5.7
Upcoming changes in MySQL 5.7
 
Introduction of security in neo4j database
Introduction of security in neo4j databaseIntroduction of security in neo4j database
Introduction of security in neo4j database
 
MySQL Optimizer: What's New in 8.0
MySQL Optimizer: What's New in 8.0MySQL Optimizer: What's New in 8.0
MySQL Optimizer: What's New in 8.0
 
MySQL NoSQL APIs
MySQL NoSQL APIsMySQL NoSQL APIs
MySQL NoSQL APIs
 
pyjamas22_ generic composite in python.pdf
pyjamas22_ generic composite in python.pdfpyjamas22_ generic composite in python.pdf
pyjamas22_ generic composite in python.pdf
 
What's New MySQL 8.0?
What's New MySQL 8.0?What's New MySQL 8.0?
What's New MySQL 8.0?
 
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
 
ADBA (Asynchronous Database Access)
ADBA (Asynchronous Database Access)ADBA (Asynchronous Database Access)
ADBA (Asynchronous Database Access)
 
O365Engage17 - Building portals with microsoft graph api
O365Engage17 - Building portals with microsoft graph apiO365Engage17 - Building portals with microsoft graph api
O365Engage17 - Building portals with microsoft graph api
 
Node.js and the MySQL Document Store
Node.js and the MySQL Document StoreNode.js and the MySQL Document Store
Node.js and the MySQL Document Store
 
Hadoop User Group Ireland (HUG) Ireland - Eddie Baggot Presentation April 2016
Hadoop User Group Ireland (HUG) Ireland - Eddie Baggot Presentation April 2016Hadoop User Group Ireland (HUG) Ireland - Eddie Baggot Presentation April 2016
Hadoop User Group Ireland (HUG) Ireland - Eddie Baggot Presentation April 2016
 
MySQL 5.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014MySQL 5.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014
 
Introduction to Sightly and Sling Models
Introduction to Sightly and Sling ModelsIntroduction to Sightly and Sling Models
Introduction to Sightly and Sling Models
 
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
 
Powerful Spatial Features You Never Knew Existed in Oracle Spatial and Graph ...
Powerful Spatial Features You Never Knew Existed in Oracle Spatial and Graph ...Powerful Spatial Features You Never Knew Existed in Oracle Spatial and Graph ...
Powerful Spatial Features You Never Knew Existed in Oracle Spatial and Graph ...
 

Mais de Neo4j

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
QIAGEN: Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
QIAGEN: Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansQIAGEN: Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
QIAGEN: Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansNeo4j
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...Neo4j
 
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosBBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosNeo4j
 
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Neo4j
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdf
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdfNeo4j_Exploring the Impact of Graph Technology on Financial Services.pdf
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdfNeo4j
 
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdf
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdfRabobank_Exploring the Impact of Graph Technology on Financial Services.pdf
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdfNeo4j
 
Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Neo4j
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeNeo4j
 
Neo4j: Data Engineering for RAG (retrieval augmented generation)
Neo4j: Data Engineering for RAG (retrieval augmented generation)Neo4j: Data Engineering for RAG (retrieval augmented generation)
Neo4j: Data Engineering for RAG (retrieval augmented generation)Neo4j
 
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdf
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdfNeo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdf
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdfNeo4j
 
Enabling GenAI Breakthroughs with Knowledge Graphs
Enabling GenAI Breakthroughs with Knowledge GraphsEnabling GenAI Breakthroughs with Knowledge Graphs
Enabling GenAI Breakthroughs with Knowledge GraphsNeo4j
 
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdf
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdfNeo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdf
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdfNeo4j
 
Neo4j Jesus Barrasa The Art of the Possible with Graph
Neo4j Jesus Barrasa The Art of the Possible with GraphNeo4j Jesus Barrasa The Art of the Possible with Graph
Neo4j Jesus Barrasa The Art of the Possible with GraphNeo4j
 

Mais de Neo4j (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
QIAGEN: Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
QIAGEN: Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansQIAGEN: Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
QIAGEN: Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
 
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosBBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
 
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdf
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdfNeo4j_Exploring the Impact of Graph Technology on Financial Services.pdf
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdf
 
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdf
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdfRabobank_Exploring the Impact of Graph Technology on Financial Services.pdf
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdf
 
Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG time
 
Neo4j: Data Engineering for RAG (retrieval augmented generation)
Neo4j: Data Engineering for RAG (retrieval augmented generation)Neo4j: Data Engineering for RAG (retrieval augmented generation)
Neo4j: Data Engineering for RAG (retrieval augmented generation)
 
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdf
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdfNeo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdf
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdf
 
Enabling GenAI Breakthroughs with Knowledge Graphs
Enabling GenAI Breakthroughs with Knowledge GraphsEnabling GenAI Breakthroughs with Knowledge Graphs
Enabling GenAI Breakthroughs with Knowledge Graphs
 
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdf
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdfNeo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdf
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdf
 
Neo4j Jesus Barrasa The Art of the Possible with Graph
Neo4j Jesus Barrasa The Art of the Possible with GraphNeo4j Jesus Barrasa The Art of the Possible with Graph
Neo4j Jesus Barrasa The Art of the Possible with Graph
 

Último

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 

Último (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 

Top 10 Cypher Tuning Tips & Tricks

  • 1. © 2022 Neo4j, Inc. All rights reserved. Top 10 Cypher (Tuning) Tips & Tricks Michael Hunger, Senior Director, User Innovation
  • 2. © 2022 Neo4j, Inc. All rights reserved. 3 Why should I care? 1 2 Efficiency Readability 3 4 Resources Network
  • 3. © 2022 Neo4j, Inc. All rights reserved. 5 Dataset - (All of) StackOverflow https://demo.neo4jlabs.com:7473 username/password/database: stackoverflow 51M nodes 124M relationships
  • 4. © 2022 Neo4j, Inc. All rights reserved. © 2022 Neo4j, Inc. All rights reserved. 6 1. PROFILE
  • 5. © 2022 Neo4j, Inc. All rights reserved. 7 1. Profile • PROFILE and EXPLAIN show you the query plan • All Operators – Index lookups, Expand, Projection, … • Cardinality (rows) - multiplicative • DB-Hits (measure of cost) • Avoid Eager for Updates • Shows Memory Usage • Best if you can stream through and shortcut (e.g. LIMIT) • avoid aggregation / sorting / collect if you can
  • 6. © 2022 Neo4j, Inc. All rights reserved. 8 PROFILE PROFILE MATCH (t:Tag)<-[:TAGGED]-(q:Question) RETURN t.name, count(*) AS c ORDER BY c DESC LIMIT 10 // Cypher version: CYPHER 4.4, // planner: COST, // runtime: PIPELINED. // 97726446 total db hits // in 29387 ms
  • 7. © 2022 Neo4j, Inc. All rights reserved. © 2022 Neo4j, Inc. All rights reserved. 9 2. Properties
  • 8. © 2022 Neo4j, Inc. All rights reserved. 10 2. Properties • Property reads are more expensive than they should be • Avoid them if possible, or defer to the latest moment • When you have narrowed down the data to what you want to return • Elevate properties to labels or rel-types can speed up a lot • E.g. boolean, status properties as labels • Sub-Structure of rel-properties to Rel-Types (e.g. year of a datetime) • Use indexes, properties can be read from the index (except for points) which is much faster (need indicate type)
  • 9. © 2022 Neo4j, Inc. All rights reserved. 11 PROFILE PROFILE MATCH (t:Tag)<-[:TAGGED]-(q:Question) WITH t, count(*) AS c ORDER BY c DESC LIMIT 10 RETURN t.name, c // 97526566 total db hits // in 29831 ms.
  • 10. © 2022 Neo4j, Inc. All rights reserved. © 2022 Neo4j, Inc. All rights reserved. 12 3. Relationships
  • 11. © 2022 Neo4j, Inc. All rights reserved. 13 Relationships • Avoid traversing relationships if you can, each is O(1) but all are O(n) • Always provide rel-type and direction • Don’t traverse across supernodes, check “against” them • Use get-degree (size(pattern)) without end label to get fast reads • Elevate properties to rel-type for speedups • Use relationship-indexes for global lookups or • Add source/target key/property to index for node-centric indexes
  • 12. © 2022 Neo4j, Inc. All rights reserved. 14 PROFILE PROFILE MATCH (t:Tag) WITH t, size([p=(t)<-[:TAGGED]-()|p]) AS c ORDER BY c DESC LIMIT 10 RETURN t.name, c // 104911 total db hits in 195 ms
  • 13. © 2022 Neo4j, Inc. All rights reserved. © 2022 Neo4j, Inc. All rights reserved. 15 4. Indexes & Constraints
  • 14. © 2022 Neo4j, Inc. All rights reserved. 16 PROFILE PROFILE MATCH (t:Tag) RETURN t.name, t.count AS c ORDER BY c DESC LIMIT 10 // 157356 total db hits in 66 ms
  • 15. © 2022 Neo4j, Inc. All rights reserved. 17 PROFILE PROFILE MATCH (t:Tag) // type triggers index usage WHERE t.count > 0 RETURN t.name, t.count AS c ORDER BY c DESC LIMIT 10 // 32 total db hits in 1 ms.
  • 16. © 2022 Neo4j, Inc. All rights reserved. 18 Types & Uses of indexes and constraints 1 2 Lookup Ranges Type Scans 3 4 Sorting Aggregation Uniqueness Existence
  • 17. © 2022 Neo4j, Inc. All rights reserved. 19 Indexes & Constraints • show indexes • show constraints • create <type> index/constraint <name> IF NOT EXISTS ON (x) FOR (prop) • todo docs
  • 18. © 2022 Neo4j, Inc. All rights reserved. 20 Indexes & Constraints • lookup • lookup in list • lookup range • don't read from property store • sorting / aggregation • compound indexes (one range, rest equality) ◦ NOM type • relationship(type) indexes ◦ global lookup by attribute / range ◦ simulate node-centric indexes index start/end-node id or property
  • 19. © 2022 Neo4j, Inc. All rights reserved. © 2022 Neo4j, Inc. All rights reserved. 21 neo4j.com/docs/cypher-manual/current/query-tuning/using/ 5. Query Hints
  • 20. © 2022 Neo4j, Inc. All rights reserved. 22 Query Hints • shouldn't be needed • but planner is not smart enough (yet) • use rarely, first try without • USING INDEX [SEEK] - force index usage (also for relationships) • USING JOIN ON - force hash join for two high-cardinality sides ◦ example with LDBC • USING SCAN ON - force label scan if very selective label
  • 21. © 2022 Neo4j, Inc. All rights reserved. 23 INDEX Hint PROFILE MATCH (t:Tag) WHERE t.count > 0 USING INDEX :Tag(count) RETURN t.name, t.count AS c ORDER BY c DESC LIMIT 10 // 32 total db hits in 1 ms.
  • 22. © 2022 Neo4j, Inc. All rights reserved. © 2022 Neo4j, Inc. All rights reserved. 24 4. Var Length Queries
  • 23. © 2022 Neo4j, Inc. All rights reserved. 25 4. Var Length Queries • Traverse arbitrary length paths / trees • Limit length if possible • Pruning Var-Length Expand ( on distinct end nodes ) • Shortest Path ( can also be used as condition )
  • 24. © 2022 Neo4j, Inc. All rights reserved. 26 Var Length Example profile MATCH (u:User {name:'meistermeier'})- [:POSTED|ACCEPTED|ANSWERED*..5]-(u2:User) RETURN count(u) // 569.130 total db hits
  • 25. © 2022 Neo4j, Inc. All rights reserved. 27 Var Length Example profile MATCH (u:User {name:'meistermeier'})- [:POSTED|ACCEPTED|ANSWERED*..5]-(u2:User) RETURN count(distinct u) // 217.347 total db hits
  • 26. © 2022 Neo4j, Inc. All rights reserved. 28 Triadic Closure Example profile MATCH (u:User {name:'meistermeier‘}) --()--(u2:User) WHERE NOT (u)--(u2) RETURN count(distinct u) // 810 total db total db hits
  • 27. © 2022 Neo4j, Inc. All rights reserved. © 2022 Neo4j, Inc. All rights reserved. 29 5. Fun with Lists
  • 28. © 2022 Neo4j, Inc. All rights reserved. 30 5. Fun with Lists • Like in Python • [ elem IN list WHERE pred(elem) | expr(elem) ] • Result is a list again • Quantors • all/single/none/any(x IN list WHERE pred(element)) • List into rows: UNWIND list AS elem • Rows into list: collect(elem) AS list
  • 29. © 2022 Neo4j, Inc. All rights reserved. © 2022 Neo4j, Inc. All rights reserved. 31 6. Map Projections
  • 30. © 2022 Neo4j, Inc. All rights reserved. 32 5. Map Projections • Idea borrowed from GraphQL • Map expression - node/relationship/map as expression • var { .* } // all properties • var {.property1, .property2} • var {value} // key = „value“ • var {name: expression} // any expression, incl. map/list • collect map expression to get list of documents • You can use map { .*, foo : null } to remove properties from a map (e.g. for LOAD CSV)
  • 31. © 2022 Neo4j, Inc. All rights reserved. 33 5. Map Projections MATCH (u:User {name:'meistermeier‘}) -[:POSTED]->()-[:ANSWERED]->(q)-[:TAGGED]->(tag) WITH q, collect(tag.name) as tags RETURN q { .title, .answers, .views, tags, } as question
  • 32. © 2022 Neo4j, Inc. All rights reserved. © 2022 Neo4j, Inc. All rights reserved. 34 7. Pattern Comprehensions
  • 33. © 2022 Neo4j, Inc. All rights reserved. 35 6. Pattern Comprehensions • Idea borrowed from GraphQL • Pattern comprehension = like list comprehension just for patterns • Pattern (can introduce new local variables) • Filter • Expression • [ (pattern)-[of:SOME]->(nodes) WHERE filter | expression ] • Result is list of the expression • Expressions can be pattern comprehensions again or map expressions • Not well planned (indexes etc) • No sorting / pagination / pushdown
  • 34. © 2022 Neo4j, Inc. All rights reserved. 36 6. Pattern Comprehensions MATCH (u:User {name:'meistermeier‘}) RETURN [(u)-[:POSTED]->()-[:ANSWERED]->(q) | q { .title, .answers, .views }] as questions
  • 35. © 2022 Neo4j, Inc. All rights reserved. © 2022 Neo4j, Inc. All rights reserved. 37 8. Subqueries
  • 36. © 2022 Neo4j, Inc. All rights reserved. 38 6. Subqueries • Added in 4.0/4.1 • CALL { WITH var MATCH … RETURN var2 } … • Existential subqueries EXISTS {} • Can not shadow variables in RETURN • Dependent or independent • Still participate in cardinality but can change it • Properly planned, unlike pattern comprehensions -> can rewrite
  • 37. © 2022 Neo4j, Inc. All rights reserved. © 2022 Neo4j, Inc. All rights reserved. 39 9. Batched Updates
  • 38. © 2022 Neo4j, Inc. All rights reserved. 40 7. Batched Updates • Avoid transaction sizes exceed available memory • Update in smaller chunks e.g. 50k updates per tx • (2/3G heap per 1M updates in a tx) • 3 options ◦ Send chunks (list of dicts) from client: UNWIND $data AS row … ◦ CALL {} IN TRANSACTIONS [OF 50000 ROWS] ◦ APOC apoc.periodic.iterate • USING PERIODIC COMMIT is deprecated • Avoid the Eager
  • 39. © 2022 Neo4j, Inc. All rights reserved. 41 7. Avoid the Eager • To isolate dependent reads from writes • Cypher injects an Eager operator that • pulls ALL rows through that happen before the operator • Which can use a lot of memory, • and can disable transaction batching • Avoided through: • Multi-pass
  • 40. © 2022 Neo4j, Inc. All rights reserved. 42 9. Might help to • To isolate dependent reads from writes • Cypher injects an Eager operator that • pulls ALL rows through that happen before the operator • Which can use a lot of memory, and can disable batching
  • 41. © 2022 Neo4j, Inc. All rights reserved. © 2022 Neo4j, Inc. All rights reserved. 43 10. User Defined Procedures & Functions
  • 42. © 2022 Neo4j, Inc. All rights reserved. 44 10. User Defined Procedures & Functions • Lego blocks to combine inside a Cypher query • Procedure libraries like APOC cover a wide range of utilities (have a look) • Refactoring • Data integration • Import • Map/collection/datetime functions • SHOW PROCEDURES / FUNCTIONS / call apoc.help(„text“) • CALL procedure(arg1, arg2) YIELD col1, col2
  • 43. © 2022 Neo4j, Inc. All rights reserved. 45 10. User Defined Procedures & Functions
  • 44. © 2022 Neo4j, Inc. All rights reserved. © 2022 Neo4j, Inc. All rights reserved. 46 11. Upcoming – Path Filters
  • 45. © 2022 Neo4j, Inc. All rights reserved. 47 11. Upcoming – Path Filters • Working towards GQL support • Inline WHERE predicates for nodes, relationships (5.0) • Future: predicates for pattern • Quantifier for patterns / subpatterns
  • 46. © 2022 Neo4j, Inc. All rights reserved. 48 Learn more 1 2 Docs neo4j.com/docs/cypher- manual/current/query-tuning/ Course neo4j.com/graphacademy/training-cqt-40/ 3 4 Refcard neo4j.com/docs/cypher-refcard Community community.neo4j.com
  • 47. © 2022 Neo4j, Inc. All rights reserved. 49 Q&A
  • 48. © 2022 Neo4j, Inc. All rights reserved. 50 Thank you! Contact us at sales@neo4j.com
  • 49. © 2022 Neo4j, Inc. All rights reserved. © 2022 Neo4j, Inc. All rights reserved. 51 Split 3rds - bullets When using bullets on the left , select all the bullets and use: Add space after list item to visually separate them Example of bullets: • Short point here not more than 3 lines • Another point which is not too long • Short and sweet
  • 50. © 2022 Neo4j, Inc. All rights reserved. © 2022 Neo4j, Inc. All rights reserved. 52 Neo4j Aura Enterprise is allowing us to realize our vision to build a knowledge graph that unifies all product knowledge to improve our retail recommendations, search and merchandising.” “ - Name and position, Company
  • 51. © 2022 Neo4j, Inc. All rights reserved. 53 Special slides examples 1 2 Arial Extra Bold 86pt for big numbers Arial Normal 14pt for small text 3 4 Arial Extra Bold 86pt for big numbers Arial Normal 14pt for small text
  • 52. © 2022 Neo4j, Inc. All rights reserved. © 2022 Neo4j, Inc. All rights reserved. 54 Thing to compare 2 Thing to compare 1 • Comparison 1 • Comparison 2 ◦ Details • Comparison 1 • Comparison 2 ◦ Details
  • 53. © 2022 Neo4j, Inc. All rights reserved. 55 1. Use Media Slide from Master 2. Image is cropped at width 4.62in, so it takes up half of the slide (and aligned with blue rectangle on the left) Media
  • 54. © 2022 Neo4j, Inc. All rights reserved. 56 Image Placeholder
  • 55. © 2022 Neo4j, Inc. All rights reserved. © 2022 Neo4j, Inc. All rights reserved. 57
  • 56. © 2022 Neo4j, Inc. All rights reserved. 58 Your Logo Here
  • 57. © 2022 Neo4j, Inc. All rights reserved. 59 59 Your Logo Here

Notas do Editor

  1. Video (TBD) youtube.com/watch?v=QnozzFP_fPo