MySQL 5.5 Reference Manual  /  SQL Statement Syntax  /  Database Administration Statements  /  Table Maintenance Statements

optimize table 优化表

mysql> ? optimize table
Name: 'OPTIMIZE TABLE'
Description:
Syntax:
OPTIMIZE [NO_WRITE_TO_BINLOG | LOCAL] TABLE tbl_name [, tbl_name] ...

NO_WRITE_TO_BINLOG 抑制sql语句被写入到binlog

Reorganizes the physical storage of table data and associated index data, to reduce storage space and improve I/O efficiency when accessing the table. The exact changes made to each table depend on the storage engine used by that table.
重新组织表数据和相关索引数据的物理存储,减少存储空间、提升访问表时的I/O效率,对每张表的确切的改变取决于该表使用的存储引擎。

Use OPTIMIZE TABLE in these cases, depending on the type of table:
在这些场景下优化表,取决于表类型:
o After doing substantial insert, update, or delete operations on an InnoDB table that has its own .ibd file because it was created with the innodb_file_per_table option enabled. The table and indexes are reorganized, and disk space can be reclaimed for use by the operating
system.
o 在一张有自己的.ibd文件的InnoDB表(创建时启用innodb_file_per_table选项)执行了大量的插入、更新或删除操作之后,通过执行optimize table,这个表会被重新组织,磁盘空间可以被操作系统再次使用。(聚簇索引)

o After deleting a large part of a MyISAM or ARCHIVE table, or making many changes to a MyISAM or ARCHIVE table with variable-length rows (tables that have VARCHAR, VARBINARY, BLOB, or TEXT columns). Deleted rows are maintained in a linked list and subsequent INSERT operations reuse old row positions. You can use OPTIMIZE TABLE to reclaim the unused space and to defragment the data file. After extensive changes to a table, this statement may also improve performance of statements that use the table, sometimes significantly.
o 在删除了一个MyISAM或ARCHIVE表的一大部分、或对包含可变长度行的MyISAM ARCHIVE表(包含VARCHAR VARBINARY BLOB TEXT列的表)做了很多改变,被删除的行通过一个linked list来维护,随后的插入操作重新使用旧的行位置。你可以使用OPTIMIZE TABLE 来收回未使用的空间、对数据文件碎片整理。在大量的改变之后,这个语句也可以显著提升使用这张表的语句的性能。

This statement requires SELECT and INSERT privileges for the table.
这个语句要求具有对该表的select和insert权限。

OPTIMIZE TABLE is also supported for partitioned tables. For information about using this statement with partitioned tables and table partitions, see
http://dev.mysql.com/doc/refman/5.5/en/partitioning-maintenance.html.

URL: http://dev.mysql.com/doc/refman/5.5/en/optimize-table.html

OPTIMIZE TABLE 也支持分区表。

Kill Statements 停止SQL或连接

mysql> ? kill
Name: 'KILL'
Description:
Syntax:
KILL [CONNECTION | QUERY] processlist_id

Each connection to mysqld runs in a separate thread. You can kill a thread with the KILL processlist_id statement.
每个到mysqld服务的连接都运行在分离的线程。你可以使用kill processlist_id 语句杀死一个线程。

Thread processlist identifiers can be determined from the ID column of the INFORMATION_SCHEMA.PROCESSLIST table, the Id column of SHOW
PROCESSLIST output, and the PROCESSLIST_ID column of the Performance Schema threads table. The value for the current thread is returned by the CONNECTION_ID() function.
线程识别符可以从INFORMATION_SCHEMA.PROCESSLIST的ID列、show processlist的输出、Performance Schema的threads表的PROCESSLIST_ID得到。当前线程的ID可以从 select connection_id()得到。

KILL permits an optional CONNECTION or QUERY modifier:
kill 允许 CONNECTION 和 QUERY 这两个可选的修饰符
o KILL CONNECTION is the same as KILL with no modifier: It terminates the connection associated with the given processlist_id, after terminating any statement the connection is executing.
   Kill CONNECTION 等同于 Kill 不加修饰符:它终止了语句之后,又终止了连接。
o KILL QUERY terminates the statement the connection is currently executing, but leaves the connection itself intact.
   Kill QUERY 终止了正在执行的语句,但保留了连接本身。

If you have the PROCESS privilege, you can see all threads. If you have the SUPER privilege, you can kill all threads and statements. Otherwise, you can see and kill only your own threads and statements.
如果你有process权限,你可以看到所有线程。如果你有super权限,你可以杀死所有线程和语句。否则,你只可以看到和杀死自己的线程和语句。

You can also use the mysqladmin processlist and mysqladmin kill commands to examine and kill threads.
你也可以使用mysqladmin processlist 和 mysqladmin kill 来检测和杀死线程。

*Note*: You cannot use KILL with the Embedded MySQL Server library because the embedded server merely runs inside the threads of the host application. It does not create any connection threads of its own.
你不可以将kill语句用在嵌入式Mysql服务,因为嵌入式服务只运行在主机应用的线程中,本身并没有创建任何连接线程。
URL: http://dev.mysql.com/doc/refman/5.5/en/kill.html

Database Administration Statements的更多相关文章

  1. Mysql手册—SQLStatementSyntax

    14.1.1 ALTER DATABASE Syntax,可用于修改数据库字符集和校验规则 查看校验规则可如下: 由于utf8的校验规则都是ci(case insensitive),所以是不区分大小写 ...

  2. SHOW Syntax

    MySQL 5.5 Reference Manual  /  SQL Statement Syntax  /  Database Administration Statements  /  SHOW ...

  3. P6 EPPM Manual Installation Guide (Oracle Database)

    P6 EPPM Manual Installation Guide (Oracle Database) P6 EPPM Manual Installation Guide (Oracle Databa ...

  4. P6 Professional Installation and Configuration Guide (Microsoft SQL Server Database) 16 R1

    P6 Professional Installation and Configuration Guide (Microsoft SQL Server Database) 16 R1       May ...

  5. [Windows Azure] Getting Started with Windows Azure SQL Database

    In this tutorial you will learn the fundamentals of Windows Azure SQL Database administration using ...

  6. [Windows Azure] How to Deploy a Database to Windows Azure

    How to Deploy a Database to Windows Azure There are several different ways you can move an on-premis ...

  7. [Windows Azure] Guidelines for Connecting to Windows Azure SQL Database

    Guidelines for Connecting to Windows Azure SQL Database 6 out of 12 rated this helpful - Rate this t ...

  8. Oracle Tuning 基础概述01 - Oracle 常见等待事件

    对Oracle数据库整体性能的优化,首先要关注的是在有性能问题时数据库排名前几位等待事件是哪些.Oracle等待事件众多,随着版本的升级,数量还在不断增加,可以通过v$event_name查到当前数据 ...

  9. P6 EPPM Installation and Configuration Guide 16 R1 April 2016

    P6 EPPM Installation and Configuration Guide 16 R1         April 2016 Contents About Installing and ...

随机推荐

  1. Python基础(十三) 为什么说python多线程没有真正实现多现程

    Python中的多线程没有真正实现多现程! 为什么这么说,我们了解一个概念,全局解释器锁(GIL). Python代码的执行由Python虚拟机(解释器)来控制. Python在设计之初就考虑要在主循 ...

  2. 最小生成树模板题 hpu 积分赛 Vegetable and Road again

    问题 H: Vegetable and Road again 时间限制: 1 Sec 内存限制: 128 MB 提交: 19 解决: 8 题目描述 修路的方案终于确定了.市政府要求任意两个公园之间都必 ...

  3. laravel自定义验证

    1.在控制器中直接写验证$this->validate($request, [ 'video_ids' => [ function($attribute, $value, $fail) { ...

  4. Zookeeper应用之——队列(Queue)

    为了在Zookeeper中实现分布式队列,首先需要设计一个znode来存放数据,这个节点叫做队列节点,我们的例子中这个节点是/zookeeper/queue. 生产者向队列中存放数据,每一个消息都是队 ...

  5. Kubernetes应用健康检查

    目录贴:Kubernetes学习系列 在实际生产环境中,想要使得开发的应用程序完全没有bug,在任何时候都运行正常,几乎 是不可能的任务.因此,我们需要一套管理系统,来对用户的应用程序执行周期性的健康 ...

  6. fabric 更详尽的用法

    项目发布和运维的工作相当机械,频率还蛮高,导致时间浪费在敲大量重复的命令上. 修复bug什么的,测试,提交版本库(2分钟),ssh到测试环境pull部署(2分钟),rsync到线上机器A,B,C,D, ...

  7. HTML响应式布局实现详解

    摘自:https://blog.csdn.net/lesouls/article/details/81454568 第一步:在网页代码的头部,加入一行viewport元标签(1)viewport是网页 ...

  8. Quartz.net定时任务框架的使用

    一:Nuget添加Quartz.net和Topshelf 二:新建HelloJob类继承IJob public class HelloJob : IJob       {            pub ...

  9. 基于ROS和beaglebone的串口通信方式,使用键盘控制移动机器人

    一.所需工具包 1.ROS键盘包:teleop_twist_keyboard  2.ROS串口通讯包:serial $ cd ~/catkin_ws/src $ git clone https://g ...

  10. iOS项目之苹果审核被拒

    解读: 3.2 其他业务模式问题下方列表并非详尽清单,并且您提交的 App 可能会导致我们的政策有所更改或更新,但这里有一些额外的应做事宜和勿做事宜需要您谨记在心: 可以接受 (i)在您的 App 中 ...