Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Jalankan hasil pemilihan sql di MySql

Anda harus menggunakan pernyataan yang disiapkan .

SET @s:='';
SELECT @s:=concat(@s, 'OPTIMIZE TABLE `', ist.TABLE_SCHEMA,'`.',  ist.TABLE_NAME, ';') FROM INFORMATION_SCHEMA.TABLES ist where table_schema = 'my_schema';    
PREPARE stmt FROM @s;
EXECUTE stmt;

DEALLOCATE PREPARE stmt;

Tetapi Anda harus meletakkan semua pernyataan tabel pengoptimalan ke dalam satu variabel, itu sebabnya saya menggabungkan @s dengan dirinya sendiri. Jika tidak, Anda harus bekerja dengan kursor, yang merupakan pekerjaan yang tidak perlu.

ANALYZE TABLE
OPTIMIZE TABLE
REPAIR TABLE

EDIT:Pendekatan yang lebih sederhana adalah ini:

SELECT CONCAT('OPTIMIZE TABLE `', ist.TABLE_SCHEMA,'`.',  ist.TABLE_NAME, ';') FROM INFORMATION_SCHEMA.TABLES ist WHERE table_schema = 'my_schema'
INTO OUTFILE '/tmp/my_optimization';
SOURCE 'tmp/my_optimization';


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL IFNULL () Dijelaskan

  2. pilih kueri untuk data kategori dengan hubungan induk anak

  3. Apa cara yang disarankan untuk terhubung ke MySQL dari Go?

  4. #1136 - Jumlah kolom tidak sesuai dengan jumlah nilai?

  5. Permintaan untuk pesan terbaru di setiap percakapan dengan setiap pengguna lain