xglys 发表于 2018-10-21 13:48:10

SQL简单实用的优化方法

  分析表:MyISAM、InnoDB、BDB
  mysql> analyze table payment; #MyISAM 使用myisamchk -a
  +----------------+---------+----------+----------+
  | Table          | Op      | Msg_type | Msg_text |
  +----------------+---------+----------+----------+
  | sakila.payment | analyze | status   | OK       |
  +----------------+---------+----------+----------+
  1 row in set (0.10 sec)
  mysql>
  mysql> check table payment_myisam ; #MyISAM、InnoDB #也可以检查视图
  +-----------------------+-------+----------+----------+
  | Table               | Op    | Msg_type | Msg_text |
  +-----------------------+-------+----------+----------+
  | sakila.payment_myisam | check | status   | OK       |
  +-----------------------+-------+----------+----------+
  1 row in set (0.00 sec)
  mysql>
  优化表:MyISAM、InnoDB、BDB
  mysql> optimize tablepayment_myisam ;
  +-----------------------+----------+----------+----------+
  | Table               | Op       | Msg_type | Msg_text |
  +-----------------------+----------+----------+----------+
  | sakila.payment_myisam | optimize | status   | OK       |
  +-----------------------+----------+----------+----------+
  1 row in set (0.01 sec)
  mysql>
  使用独立表空间:
  mysql> show variables like "innodb_file_per_table";
  +-----------------------+-------+
  | Variable_name         | Value |
  +-----------------------+-------+
  | innodb_file_per_table | ON    |
  +-----------------------+-------+
  1 row in set (0.00 sec)
  mysql> set GLOBAL innodb_file_per_table = on;
  Query OK, 0 rows affected (0.00 sec)
  mysql>
  删除大量数据后InnoDB表可以通过alter table:

  mysql>>  Query OK, 0 rows affected (4.63 sec)
  Records: 0Duplicates: 0Warnings: 0
  mysql>
  关于字符集的设置:
  character_set_server=utf8mb4
  default_character-set=utf8mb4

页: [1]
查看完整版本: SQL简单实用的优化方法