If you're not using incremental / delta indexing, you should start doing that instead. That way only the rows that have changed since the last index ran will be indexed again, allowing you to lessen the impact and the amount of rows from MySQL.
In addition the JDBCDataSource (which I guess you're using) supports the
batchSize parameter, which tells the JDBC driver to limit the amount of documents in each query - and issue more than one query instead.
You should also take care to have usable indexes on your data if you're performing any sort of filtering on the SQL content when retrieving it (such as for a delta import).