Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Chris R.'s avatar

Storing translation data - JSON column vs separate table

There are few topics out there, but some are old and i havent found good answer yet. There are two packages for Laravel which has a different approach to store translation data to database:

  1. spatie/laravel-translatable - stores data to json column
  2. astrotomic/laravel-translatable - stores data to separate table

Im sure theres not much difference in small website, but lets talk when you need to make e-commerce (100 000 productS) or news site with 3-5 languages. For article i need to store title, slug, description where title needs to be searchable. I can use MariaDB 10.5.18.

Which is faster? What are your experiences?

0 likes
1 reply
illuminatixs's avatar

Hi there,

If I remember correctly, the JSON type in MySQL/maria is an alias for LONGTEXT and will thus be always less efficient in large data sets than a separate table as you're not able to index the data in your JSON column.

Hope this helps! :-)

1 like

Please or to participate in this conversation.