|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.jcs.auxiliary.disk.jdbc.mysql.MySQLTableOptimizer
public class MySQLTableOptimizer
The MySQL Table Optimizer can optimize MySQL tables. It knows how to optimize for MySQL datbases in particular and how to repair the table if it is corrupted in the process.
We will probably be able to abstract out a generic optimizer interface from this class in the future.
Constructor Summary | |
---|---|
MySQLTableOptimizer(MySQLDiskCacheAttributes attributes,
TableState tableState,
JDBCDiskCachePoolAccess poolAccess)
This constructs an optimizer with the disk cacn properties. |
Method Summary | |
---|---|
java.lang.String |
getTableName()
|
protected java.lang.String |
getTableStatus(java.sql.Statement sStatement)
This calls show table status and returns the result as a String. |
boolean |
optimizeTable()
A scheduler will call this method. |
protected boolean |
repairTable(java.sql.Statement sStatement)
This is called if the optimizatio is in error. |
void |
setTableName(java.lang.String tableName)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public MySQLTableOptimizer(MySQLDiskCacheAttributes attributes, TableState tableState, JDBCDiskCachePoolAccess poolAccess)
attributes
- tableState
- We mark the table status as optimizing when this is happening.poolAccess
- access to the databaseMethod Detail |
---|
public boolean optimizeTable()
This restores when there is an optimization error. The error output looks like this:
mysql> optimize table JCS_STORE_FLIGHT_OPTION_ITINERARY; +---------------------------------------------+----------+----------+---------------------+ | Table | Op | Msg_type | Msg_text | +---------------------------------------------+----------+----------+---------------------+ | jcs_cache.JCS_STORE_FLIGHT_OPTION_ITINERARY | optimize | error | 2 when fixing table | | jcs_cache.JCS_STORE_FLIGHT_OPTION_ITINERARY | optimize | status | Operation failed | +---------------------------------------------+----------+----------+---------------------+ 2 rows in set (51.78 sec)A successful repair response looks like this:
mysql> REPAIR TABLE JCS_STORE_FLIGHT_OPTION_ITINERARY; +---------------------------------------------+--------+----------+----------------------------------------------+ | Table | Op | Msg_type | Msg_text | +---------------------------------------------+--------+----------+----------------------------------------------+ | jcs_cache.JCS_STORE_FLIGHT_OPTION_ITINERARY | repair | error | 2 when fixing table | | jcs_cache.JCS_STORE_FLIGHT_OPTION_ITINERARY | repair | warning | Number of rows changed from 131276 to 260461 | | jcs_cache.JCS_STORE_FLIGHT_OPTION_ITINERARY | repair | status | OK | +---------------------------------------------+--------+----------+----------------------------------------------+ 3 rows in set (3 min 5.94 sec)A successful optimization looks like this:
mysql> optimize table JCS_STORE_DEFAULT; +-----------------------------+----------+----------+----------+ | Table | Op | Msg_type | Msg_text | +-----------------------------+----------+----------+----------+ | jcs_cache.JCS_STORE_DEFAULT | optimize | status | OK | +-----------------------------+----------+----------+----------+ 1 row in set (1.10 sec)
protected java.lang.String getTableStatus(java.sql.Statement sStatement) throws java.sql.SQLException
sStatement
-
java.sql.SQLException
protected boolean repairTable(java.sql.Statement sStatement) throws java.sql.SQLException
It looks for "OK" in response. If it find "OK" as a message in any result set row, it returns true. Otherwise we assume that the repair failed.
sStatement
-
java.sql.SQLException
public void setTableName(java.lang.String tableName)
tableName
- The tableName to set.public java.lang.String getTableName()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |