MySQL innodb table management

Engine Innodb storage optimize

MySQL的表增长到稳定时期或者连续增长10或100Mb时,可以通过使用optimize table语句来重构MySQL表,增加MySQL表的可用性,减少表在表空间中的存储碎片。

MySQL optimize table会重建table和Index,减少表内的空间碎片。

如果是varchar类型的字段,进行大量的updatge,造成字段长度改变很多,也可以使用optimize table重构表,增加MySQL中表的可读性。

一般表容量低于1024M,不需要optimize table重构。

optimize table会锁表,需要在维护时间或数据库访问峰谷执行此操作。

mysql> optimize table test2;

+--------------+----------+----------+-------------------------------------------------------------------+

| Table        | Op       | Msg_type | Msg_text                                                          |

+--------------+----------+----------+-------------------------------------------------------------------+

| dfxbdb.test2 | optimize | note     | Table does not support optimize, doing recreate + analyze instead |

| dfxbdb.test2 | optimize | status   | OK                                                                |

+--------------+----------+----------+-------------------------------------------------------------------+

2 rows in set (0.08 sec)

时间: 2024-10-12 04:33:02

MySQL innodb table management的相关文章

MySQL 5.6 Reference Manual-14.6 InnoDB Table Management

14.6 InnoDB Table Management 14.6.1 Creating InnoDB Tables 14.6.2 Moving or Copying InnoDB Tables to Another Machine 14.6.3 Grouping DML Operations with Transactions 14.6.4 Converting Tables from MyISAM to InnoDB 14.6.5 AUTO_INCREMENT Handling in Inn

mysql Unknown table engine 'InnoDB'解决办法

最近做项目时,由于数据库存的中文乱码.改了一下配置.中文乱码改过来了,但是在导入数据时Unknown table engine 'InnoDB'  百度晚上各种拷贝.最后看了下InnoDB.是一种支持事务的引擎.给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎.在重置时直接选择第二种模式 mysql Unknown table engine 'InnoDB'解决办法

14.7 InnoDB Table Compression

pdf:http://download.csdn.net/detail/paololiu/9576929 14.7 InnoDB Table Compression 14.7.1 Overview of Table Compression 14.7.2 Enabling Compression for a Table 14.7.3 Tuning Compression for InnoDB Tables 14.7.4 Monitoring Compression at Runtime 14.7.

MySQL InnoDB存储引擎排它锁和共享锁的研究

1,共享锁实验 session1 在session1建表lisa并插入数据 mysql> create table lisa(name char(10),age int(5)); mysql> insert into lisa values('lisa','26'); 加给age=26这一行加共享锁 mysql> set autocommit=0; mysql> select * from lisa where age=26 lock in share mode; mysql>

使用mysql innodb 使用5.7的json类型遇到的坑和解决办法

---------------------------------------------- #查询JSON的某个字段 select data -> '$.Host' from temp #创建虚拟列 ALTER TABLE temp ADD host varchar(128) GENERATED ALWAYS AS (json_extract(data,'$.Host')) VIRTUAL; #给虚拟列创建索引 ALTER TABLE temp ADD INDEX index_temp_hos

巧用MySQL InnoDB引擎锁机制解决死锁问题(转)

该文会通过一个实际例子中的死锁问题的解决过程,进一步解释innodb的行锁机制 最近,在项目开发过程中,碰到了数据库死锁问题,在解决问题的过程中,笔者对MySQL InnoDB引擎锁机制的理解逐步加深. 案例如下: 在使用Show innodb status检查引擎状态时,发现了死锁问题: *** (1) TRANSACTION: TRANSACTION 0 677833455, ACTIVE 0 sec, process no 11393, OS thread id 278546 starti

使用参数innodb_file_per_table支持MySQL InnoDB表数据共享空间自动收缩

http://heylinux.com/archives/2367.html http://blog.csdn.net/ywh147/article/details/8996022 使用过MySQL的同学,刚开始接触最多的莫过于MyISAM表引擎了,这种引擎的数据库会分别创建三个文件:表结构.表索引.表数据空间.我们可以将某个数据库目录直接迁移到其他数据库也可以正常工作.然而当你使用InnoDB的时候,一切都变了.InnoDB 默认会将所有的数据库InnoDB引擎的表数据存储在一个共享空间中:i

Mysql InnoDB行锁实现方式

InnoDB行锁是通过给索引上的索引项加锁来实现的,这一点MySQL与Oracle不同,后者是通过在数据块中对相应数据行加锁来实现的.InnoDB这种行锁实现特点意味着:只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁! 在实际应用中,要特别注意InnoDB行锁的这一特性,不然的话,可能导致大量的锁冲突,从而影响并发性能.下面通过一些实际例子来加以说明. (1)在不通过索引条件查询的时候,InnoDB确实使用的是表锁,而不是行锁. 在如表20-9所示的例子中,开始

mysql truncate table命令使用总结

truncate使用注意 由于上过truncate table a_table命令一次当,将教训记录下来,以示警戒! mysql truncate table a_table命令受影响结果说明,亲身体验 命令 truncate table a_table; 会将执行表中的数据删除,有增长ID值的话会清空,但索引和表字段不会改变.切记增长ID值的改变!使用时需要注意! truncate性能 truncate table(innodb引擎) 数量1700w(17708030),只需要27s,平均每秒