sql >> Databasteknik >  >> RDS >> Mysql

Vad stöder Tabell inte optimize, men återskapa + analysera istället betyder?

Det är verkligen ett informationsmeddelande.

Troligtvis gör du OPTIMIZE på en InnoDB tabell (tabell som använder InnoDB-lagringsmotorn, snarare än MyISAM lagringsmotor).

InnoDB stöder inte OPTIMIZE på det sätt som MyISAM gör. Det gör något annorlunda. Den skapar en tom tabell och kopierar alla rader från den befintliga tabellen till den, och tar i princip bort den gamla tabellen och byter namn på den nya tabellen, och kör sedan en ANALYS för att samla in statistik. Det är det närmaste InnoDB kan komma att göra en OPTIMIZE.

Meddelandet du får är i princip MySQL-servern som upprepar vad InnoDB-lagringsmotorn sa till MySQL-servern:

Tabell stöder inte optimering säger InnoDB-lagringsmotorn...

"Jag (InnoDB-lagringsmotorn) gör inte en OPTIMIZE-operation som min vän (MyISAM-lagringsmotorn) gör."

"återskapa + analysera istället" säger InnoDB-lagringsmotorn...

"Jag har bestämt mig för att utföra en annorlunda uppsättning operationer som kommer att uppnå ett likvärdigt resultat."



  1. ORA-00936:orakel för uttryck som saknas

  2. Hur man löser det saknade uttrycket i ORA-00936

  3. Hur man returnerar alla otillförlitliga utländska nyckelbegränsningar i SQL Server (T-SQL-exempel)

  4. Oracle-parametrar med IN-sats?