public class MySQLTableOptimizer extends Object
We will probably be able to abstract out a generic optimizer interface from this class in the future.
Constructor and Description |
---|
MySQLTableOptimizer(MySQLDiskCacheAttributes attributes,
TableState tableState,
DataSource dataSource)
This constructs an optimizer with the disk can properties.
|
Modifier and Type | Method and Description |
---|---|
String |
getTableName() |
protected String |
getTableStatus(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(Statement sStatement)
This is called if the optimization is in error.
|
void |
setTableName(String tableName) |
public MySQLTableOptimizer(MySQLDiskCacheAttributes attributes, TableState tableState, DataSource dataSource)
attributes
- tableState
- We mark the table status as optimizing when this is happening.dataSource
- access to the databasepublic 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 String getTableStatus(Statement sStatement) throws SQLException
sStatement
- SQLException
protected boolean repairTable(Statement sStatement) throws 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
- SQLException
public void setTableName(String tableName)
tableName
- The tableName to set.public String getTableName()
Copyright © 2002–2023 The Apache Software Foundation. All rights reserved.