I chose the utf8mb4 character set for my database.
What is the difference between the utf8mb4_unicode_ci and the utf8mb4_unicode_nopad_ci collations?
From the doc
A 'nopad' as part of the name indicates that the collation is of type NO PAD as opposed to PADSPACE ... NO PAD collations regard trailing spaces as normal characters.
On PADSPACE
CHAR (as well as VARCHAR and TEXT) values are compared without regard for trailing spaces. This does not apply to the LIKE pattern-matching operator, which takes into account trailing spaces.
If a unique index consists of a column where trailing pad characters are stripped or ignored, inserts into that column where values differ only by the number of trailing pad characters will result in a duplicate-key error.