Do not split the table into multiple tables by year. This is all the same type of data, and you will complicate everything else you do with it. Instead, consider a basic normalization. Instead of:
type
name
organization
state
year
use this organization:
person:
id
name
organization:
id
name
entry (not sure what to call this table):
type
person_id
org_id
state
year
Now your wildcard queries will be much, much faster (assuming that the there are far fewer than 2million organizations, of course!)
select type, person.name, organization.name, state, year
from entry, person, organization
where
entry.person_id = person.id
and entry.organization_id = organization.id
and entry.type="some-type"
and person.name like "%_some_name"
and organization.name like "%some_org"
and entry.state = "some_state"
and entry.year = "some_year";
You will need indexes on most of the columns here if you intend to support a wide range of queries; this will of course have a negative impact on speed of INSERT and UPDATE queries.