Я бы порекомендовал разбить таблицу на две отдельные таблицы. Но в случае, если вы не хотите этого делать, самый эффективный способ сделать это, если вы всегда будете включать «where app_user = 1» в свои запросы, - это создать первичный ключ в таблице, содержащей столбец app_user как первая часть ключа. InnoDB будет использовать это как кластерный индекс, который сэкономит вам несколько дополнительных обращений к диску. Вы можете создать таблицу следующим образом:
создать таблицу testTable (
app_user tinyint НЕ ПОДПИСАНО по умолчанию 0,
id int НЕ ПОДПИСАНО НЕ НУЛЬ,
имя varchar (255) по умолчанию '',
ПЕРВИЧНЫЙ КЛЮЧ k1 (app_user, id)
) ДВИГАТЕЛЬ = InnoDB;
Мой друг недавно написал эту статью о кластерных индексах в InnoDB:
http://www.joehruska.com/?p=6