Book Image

Learning Neo4j 3.x - Second Edition

By : Jerome Baton
Book Image

Learning Neo4j 3.x - Second Edition

By: Jerome Baton

Overview of this book

Neo4j is a graph database that allows traversing huge amounts of data with ease. This book aims at quickly getting you started with the popular graph database Neo4j. Starting with a brief introduction to graph theory, this book will show you the advantages of using graph databases along with data modeling techniques for graph databases. You'll gain practical hands-on experience with commonly used and lesser known features for updating graph store with Neo4j's Cypher query language. Furthermore, you'll also learn to create awesome procedures using APOC and extend Neo4j's functionality, enabling integration, algorithmic analysis, and other advanced spatial operation capabilities on data. Through the course of the book you will come across implementation examples on the latest updates in Neo4j, such as in-graph indexes, scaling, performance improvements, visualization, data refactoring techniques, security enhancements, and much more. By the end of the book, you'll have gained the skills to design and implement modern spatial applications, from graphing data to unraveling business capabilities with the help of real-world use cases.
Table of Contents (24 chapters)
Title Page
Credits
About the Authors
Acknowledgement
About the Reviewers
www.PacktPub.com
Customer Feedback
Preface

Rules of thumb


Here is a list of rules to help you make your queries the most performant possible.

Explain all the queries

Once written and their results verified, explain all your queries on a decent dataset to look for possible bottlenecks, as explained earlier in this chapter.

Rows

In your query plans, the row counts should decrease rapidly from top to bottom. If not, did you use enough labels? Enough indexes? Are the properties you use indexed?

Do not overconsume

Virtual resources are resources too. Do not waste CPU cycles, memory, and energy by returning more data than you need. Do not get the full nodes if you only want to use a few properties of each.

Cartesian or not?

Unless authorized, you should not do a cartesian product in your queries. You may already know this, but sometimes it happens. For example, here is one, the most obvious:

MATCH (n),(m)
RETURN n,m

Mind that the number of results is the square of the number of nodes. Recognize cartesian products by the lack of relation expressed...