Bug #113890 Additional support for Partial JSON updates
Submitted: 4 Feb 2024 18:05 Modified: 5 Feb 2024 9:16
Reporter: Ryan Brothers Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: JSON Severity:S4 (Feature request)
Version:8.3.0 OS:Any
Assigned to: CPU Architecture:Any

[4 Feb 2024 18:05] Ryan Brothers
Description:
This is a feature request.

I was hoping to get more information/advice on the below, but please let me know if I should post it in a different place:

I am attempting to use MySQL more and more as a document store for large json strings.  I'm aware there are other document store databases out there for storing json, but I prefer MySQL for several reasons.

My json strings change often in small ways, and when they do, the entire json string gets written to the binlog, so my binlogs are extremely large.  I'm aware of binlog_row_value_options = PARTIAL_JSON and binlog_row_image = MINIMAL, which is mentioned in:

https://dev.mysql.com/blog-archive/partial-update-of-json-values

That helps, but it doesn't cover all scenarios such as changing a field to be a longer string, or using JSON_ARRAY_APPEND() or any of the other json functions that PARTIAL_JSON doesn't support.

One workaround I've considered is to use binlog_format = STATEMENT, which helps to reduce the binlog size, but that is deprecated starting in MySQL 8.0.34.  Also, that doesn't work with transaction-isolation = READ COMMITTED.

Based on the above, will MySQL consider supporting more scenarios with PARTIAL_JSON?  I feel that would be ideal.  Or something else?

I feel that doing something for this issue will help MySQL continue to be used as a document store for json.

Thank you for your help.

How to repeat:
.
[5 Feb 2024 9:16] MySQL Verification Team
Hello!

Thank you for the feature request!

Thanks,
Umesh