Saya menjalankan pernyataan perintah di bawah ini untuk mengoptimalkan tabel:
optimize table tablename;
Apakah ada perintah atau pernyataan yang dapat mengoptimalkan semua tabel satu per satu dari database yang dipilih?
Saya menjalankan pernyataan perintah di bawah ini untuk mengoptimalkan tabel:
optimize table tablename;
Apakah ada perintah atau pernyataan yang dapat mengoptimalkan semua tabel satu per satu dari database yang dipilih?
Jawaban:
Saya biasanya menggunakan mysqlcheck dengan kombinasi --optimize dan --databases. mysqlcheck adalah antarmuka baris perintah untuk administrator untuk memeriksa, mengoptimalkan, dan memperbaiki tabel.
mysqlcheck -uroot -p --optimize --databases myDatabase
Berikut ini adalah dokumen MySQL: http://dev.mysql.com/doc/refman/5.5/en/mysqlcheck.html
Maks.
Anda bisa membuat skrip dan menempatkan semua tabel pada satu baris
MYSQL_USER=root
MYSQL_PASS=rootpassword
MYSQL_CONN="-u${MYSQL_USER} -p${MYSQL_PASS}"
MYSQL_DATA=mydb
TBLLIST=""
COMMA=""
SQL="SELECT table_name FROM information_schema.tables WHERE table_schema=DATABASE()"
for TBL in `mysql ${MYSQL_CONN} -D${MYSQL_DATA} -ANe"${SQL}"`
do
TBLLIST="${TBLLIST}${COMMA}${TBL}"
COMMA=","
done
SQL="OPTIMIZE TABLE ${TBLLIST};"
mysql ${MYSQL_CONN} -D${MYSQL_DATA} -ANe"${SQL}"
MYSQL_USER=root
MYSQL_PASS=rootpassword
MYSQL_CONN="-u${MYSQL_USER} -p${MYSQL_PASS}"
TBLLIST=""
COMMA=""
SQL="SELECT CONCAT(table_schema,'.',table_name) FROM information_schema.tables WHERE"
SQL="${SQL} table_schema NOT IN ('information_schema','mysql','performance_schema')"
for DBTB in `mysql ${MYSQL_CONN} -ANe"${SQL}"`
do
TBLLIST="${TBLLIST}${COMMA}${DBTB}"
COMMA=","
done
SQL="OPTIMIZE TABLE ${TBLLIST};"
set -x
mysql ${MYSQL_CONN} -ANe"${SQL}"