Book Image

Mastering RethinkDB

By : Shahid Shaikh
Book Image

Mastering RethinkDB

By: Shahid Shaikh

Overview of this book

RethinkDB has a lot of cool things to be excited about: ReQL (its readable,highly-functional syntax), cluster management, primitives for 21st century applications, and change-feeds. This book starts with a brief overview of the RethinkDB architecture and data modeling, and coverage of the advanced ReQL queries to work with JSON documents. Then, you will quickly jump to implementing these concepts in real-world scenarios, by building real-time applications on polling, data synchronization, share market, and the geospatial domain using RethinkDB and Node.js. You will also see how to tweak RethinkDB's capabilities to ensure faster data processing by exploring the sharding and replication techniques in depth. Then, we will take you through the more advanced administration tasks as well as show you the various deployment techniques using PaaS, Docker, and Compose. By the time you have finished reading this book, you would have taken your knowledge of RethinkDB to the next level, and will be able to use the concepts in RethinkDB to develop efficient, real-time applications with ease.
Table of Contents (16 chapters)
Mastering RethinkDB
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface

Optimizing query performance


The way recommended by RethinkDB to get great performance from the database is to use sharding, replication, and proxy nodes, which we've already learned in previous sections. However, poorly written queries can still affect your system even if you are using these techniques.

In order to refactor and find out those queries, RethinkDB provides a tool called database profiler that shows various performance parameters of queries executed on the database. You can enable this tool from the web admin console, under the Data Explorer section.

Once you run the query, it provides you with the following information:

  • Round trip time: Total time taken from firing the query till the return of the result

  • Server time: Total time taken by the database to execute the query

  • Shared access: How many shards were used to form the result

Here is a screenshot of the query I ran to fetch all employees from the company table:

As you can see, Query profile provides us important information...