Actually, mysql can do pretty well with large database, as long as the ratio of reading to writing is high. But what you're asking it to do here does not lend itself to speed: you're asking it to sequentially scan every single row in the entire table (of x million rows) in case the trailing part of the string happens to match your pattern.
This is why I suggested that a redesign of the database might help if this is going to be a common operation. For example, if the table in question contained, not a literal string, but a numeric reference to the ID column of a separate name table, you might speed things up by an order of magnitude. In other words, instead of
create table others
(
...
name text
 ðŸ˜‰;
you would have:
create table names
(
id int auto_increment,
name text
 ðŸ˜‰;
create table others
(
...
name_id int // references names.id
 ðŸ˜‰;
delete from others where others.name_id = names.id
and names.name like '...';
This only makes sense if 'others' has a lot more rows than 'names'--i.e. if the same name appears frequently in 'others'. If not, it's back to the drawing board.