1. The characteristics of Mroonga#

1.1. What is Mroonga?#

Mroonga is a MySQL storage engine based on Groonga, the full text search engine.

In MySQL 5.1 or later, Pluggable Storage Engine interface is introduced, and we can use custom storage engines easily. So we implement Mroonga, so that we can use Groonga through MySQL.

By using Mroonga, you can use Groonga with SQL.

1.2. The successor of Tritonn#

To support Japanese full text search, Tritonn was developed by embedding Senna, the predecessor of Groonga, in MySQL. Mroogna is its successor.

1.3. Running as a MySQL plugin#

Since Tritonn was the modified version of MySQL, we need to build it by ourselves or use binary files provided by Tritonn project, thus we cannot use the official binary files provided by MySQL.

On the other hand, Mroonga is an independent program (shared library) using Pluggable Storage Engine interface, and we can dynamically load it on MySQL’s official binary. So we can use it more easily than Tritonn.

1.4. Faster index update#

Comparing to Senna, Groonga has much better throughput in adding or updating index.

Mroonga also has the benefit of this performance improvement.

1.7. Sharing the same Groonga storage#

Mroonga stores the data by using Groonga’s DB API. And its storage file’s format is same as that of the file that is managed by Groonga itself only. Therefore you can share the same Groonga storage like below.

  • Store data through Mroonga (MySQL) and search from Groonga server.

  • Store data through Groonga server and search from Mroonga (MySQL).

And Groonga’s storage file can be shared with multi-processes and multi-threads, so that we can invoke several search queries to the same storage file simultaneously.

1.8. Associate with other storage engines#

Mroonga has two running modes.

One is “storage mode”, that is the default mode, and we use Groonga for both storing data and searching. With this mode, you can have full benefits of Groonga described above, like fast data update, lock-free full text search and geolocation search. But it does not support transactions.

Another one is “wrapper mode”, that adds full text search function on other storage engines like MyISAM or InnoDB. With this mode, you can use Groonga’s fast full text search with having the benefits of the storage engine, ex. transaction in InnoDB. But you cannot have benefits from Groonga’s read-lock free characteristic. And you might have the performance bottle neck in the storage engine in updating data.

1.9. Supported platforms#

Mroonga supports many of the major platforms.

Refer to Install for supported platforms.