Hi, Sergei.
I've requested your review on this, here are few additional notes.
I ran some benchmarks comparing against MySQL5.7's JSON field type.
And it seems
that the difference in performance is negligible.
For instance here are results for 20M rows with rather complicated JSON:
Space occupied:
MariaDB
-rw-rw----. 1 hf hf 9520000000 Jul 25 13:08 jt1.MYD
MySQL
-rw-r-----. 1 hf hf 9440000000 Jul 25 13:28 jt1.MYD
Query time:
MariaDB [test]> select count(*) from jt1 where json_extract(j,
"$.key1[1].key2")='IT';
+----------+
| count(*) |
+----------+
| 20000000 |
+----------+
1 row in set (7.65 sec)
MySQL [test]> select count(*) from jt1 where json_extract(j,
"$.key1[1].key2")='IT';
+----------+
| count(*) |
+----------+
| 20000000 |
+----------+
1 row in set (7.56 sec)
So again i can't think now of usecases where we have to store the JSON
in some special
binary representation. Only thing i can figure out is that we'd like
to be able to read the MySQL database
without any specific conversion.
Best regards.
HF