El "indexar" una BD le facilitará la tarea de buscar terminos en tus tablas/campos a Msyql .. Eso lo defines en las propiedades de tu tabla definiendo que campos será usados como "claves" los cuales son los suceptibles de ser usados para busquedas y por ende se indexan.
Te recomiendo estos temas para que leas acerca de Normalización, busquedas Full Text y otros:
Normalización de tus BD
http://www.mysql-hispano.org/page.php?id=16
Busquedas Full Text (indenxan tus campos)
http://www.mysql-hispano.org/page.php?id=15
Y en general:
www.mysql.com www.mysql-hispano.com
Y bueno .. en principio .. son problemas de SQL y/o modelo de datos de tu BD ..
No sé por qué vas a separar "items" (los de cristaleria, cocina .. etc) en diferentes tablas cuando puedes usar un simple campo que indique que categoría es ese producto para poder aplicar filtros tipo "WHERE categoria='cristaleria') .. Esto es parte de la "Normalización" de tu BD ..
Aprovecho para mover el mensaje al foro de "Base de datos" ..
Un saludo,