Sort-Limit Optimization in AQL

00GeneralTags:

Sometimes we want sorted output from a query and, for whatever reason, cannot use an index to do the sorting. In ArangoDB, we already cover this critical case with finely tuned query execution code. Sometimes though, we do not need to return all output, and follow our SORT clause with LIMIT. In ArangoDB 3.4 and earlier, we did not handle this case any differently from returning the full data, at least with respect to sorting – we would sort the full input, then apply the limit afterwards.

Read more

Using the WebUI AQL Editor – Basics

00GeneralTags: , ,

The ArangoDB query language (AQL) can be used to retrieve and modify data that is stored in ArangoDB. The AQL editor in the web interface is useful for running ad hoc AQL queries and trying things out.

The editor is split into three parts. The center section allows you to write your query and modify your query bind parameters. At the bottom you can either run the query or explain it, allowing to explain the query and inspect its execution plan. This can be used to check if the query uses indexes, and which. Here more information about optimizing a query. Read more

From Zero to Advanced Graph Query Knowledge with ArangoDB

00General, Graphs, Query LanguageTags: , ,

Thinking about your data as a highly connected set of information is a powerful way to gain insights, solve problems and bring products faster into the hands of your users.

Unlike other databases, relationships take the first priority in graph databases and with ArangoDBs multi-model approach for graphs, documents and key/value pairs you can even switch between models or combine them in a single query.

The graph concept is booming but still new to many. So we invested a few bazillion coffees and some night shifts to come up with a good plan for a Graph Course:

Read more

Arangochair – a tool for listening to changes in ArangoDB

02GeneralTags: , , ,

The ArangoDB team gave me an opportunity to write a tutorial about arangochair. Arangochair is the first attempt to listen for changes in the database and execute actions like pushing a document to the client or execute an AQL query. Currently it is limited to single nodes.

This tutorial is loosely based on the example at baslr/arangochair-serversendevents-demo

arangochair is a Node.js module hosted on npm which make it fairly easy to install. Just run
npm install arangochair and its installed. Read more

Killing a long-running query

01General, Query LanguageTags: ,

Suppose there is an AQL query that’s executing in the server for a long time already and you want to get rid of it. What can be done to abort that query?

If a connection to the server can still be established, the easiest is to use the ArangoShell to fetch the list of currently executing AQL queries and send a kill command to the server for the correct query. Read more

AQL optimizer improvements for 2.8

00PerformanceTags: , ,

With the 2.8 beta phase coming to an end it’s time to shed some light on the improvements in the 2.8 AQL optimizer. This blog post summarizes a few of them, focusing on the query optimizer. There’ll be a follow-up post that will explain dedicated new AQL features soon. Read more

AQL Function Speedups in 2.8

00PerformanceTags: , ,

While working on the upcoming ArangoDB 2.8, we have reimplemented some AQL functions in C++ for improved performance. AQL queries using these functions may benefit from using the new implementation of the function.

The following list shows the AQL functions for which a C++ implementation has been added in 2.8. The other C++-based AQL function implementations added since ArangoDB 2.5 are also still available. Here’s the list of functions added in 2.8: Read more

Using Multiple Indexes Per Collection

03Documentation, PerformanceTags: ,

The query optimizer in ArangoDB 2.8 has been improved in terms of how it can make use of indexes. In previous versions of ArangoDB, the query optimizer could use only one index per collection used in an AQL query. When using a logical OR in a FILTER condition, the optimizer did not use any index for the collection in order to ensure the result is still correct.

This is much better in 2.8. Now the query optimizer can use multiple indexes on the same collection for FILTER conditions that are combined with a logical OR. Read more

Do you like ArangoDB?
icon-githubStar this project on GitHub.
close-link