Добавляете в одну таблица индекс на своё поле категория и получаете таблицу разбитую на две виртуальные части, при запросах с категорией будет использоваться этот индекс, что и так само собой отсекает вторую половину таблицы.
Зачем разбивать одни данные на две таблицы-то? Почему не на 5 таблиц, чтобы еще один столбец раскидать на разные таблицы, так до бесконечности можно усложнять и будет какая-то каша.
Что будет лучше с точки зрения оптимизации и скорости
На выходе всё в итоге зависит от того что за данные, что с ними делаете, как читаете, как часто читаете/пишете и т.д.
т.е. всё индивидуально. При этом есть индексы и партиции которые решают все эти вопросы, особенно на таком малом объёме данных.
100кк записей это не так много.