Can you explain us the business case to have a dropdown with 30000 values?
Looks like a user will not be available to read each value to make his choice. It will rather write the beginning of what he wants and then choose an option.
It may be better suited to have a textbox that will act as a search box. You can then fetch the corresponding record in a multi select. You can add some Javascript to avoid multiple selection.
Here is what we have done for our automated Exchange mailing list service.
The textbox "Find a mailing list" triggers a plugin that search in ldap for security groups associated with an Exchange mailing list.