最近优化GTID模式下事务表和非事务表更新报错处理时,发现某几张表更改存储引擎为InnoDB报错如下: mysql> alter table sc_xxx_video_xxxxengine = innodb; ERROR (HY000): Table storage engine for '#sql-81a_32739' doesn't have this option 查看报错的几张表的定义语句如下: CREATE TABLE `sc_sys_vedio_relation` ( `catalo…
innodb 一般对应 Compact  ,MyISAM 一般对应静态与动态 mysql中若一张表里面存在varchar.text以及其变形.blob以及其变形的字段的话,那么这个表其实也叫动态表,即该表的 row_format是dynamic,就是说每条记录所占用的字节是动态的.其优点节省空间,缺点增加读取的时间开销.反之,这张表叫静态表,该表 row_format为fixed,即每条记录占用字节一样.优点读取快,缺点浪费部分空间 所以,做搜索查询量大的表一般都以空间来换取时间,设计成静态表.…
1.为数据表添加一个新字段 Alter TABLE [dbo].[CustomerBackupConfig] Add [Stamp] [timestamp] NULL GO 2.为数据表添加两个新字段 , GO 3.为数据表删除一个字段 Alter Table [dbo].[tblOrder] Drop Column [CookieID] GO 4.修改数据表一个字段的定义 Alter Table [dbo].[tblOrder] Alter Column [CookieID] int not…
1.MySQL锁概述 锁是计算机协调多个进程或线程并发访问某一资源的机制.在数据库中,除传统的计算资源 (如 CPU.RAM.I/O 等)的抢占以外,数据也是一种供许多用户共享的资源.如何保证数 据并发访问的一致性.有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素. 2.MySQL锁特性 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制,归纳表格如下: 存储引擎          锁类型 MyISAM MEMORY…
我可以和面试官多聊几句吗?只是想... MySQL优化篇系列文章(基于MySQL8.0测试验证),上部分:优化SQL语句.数据库对象,MyISAM表锁和InnoDB锁问题. 面试官:咦,小伙子,又来啦. 我:面试官,您好.一面确实收获不少,二面想获取更多的经验. 面试官:不错,不错,不错,年纪轻轻,有我当年一半的风范,挺有觉悟.接着聊MySQL锁问题. 我:好呀,这次我准备了MyISAM和InnoDB锁一些总结,希望您多多指教. 面试官:那,让我们进入今天的话题,一起讨论MySQL锁问题. 我:…
前言 锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,除传统的计算资源(如CPU.RAM.I/O等)的争用以外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性是所有数据库必须解决的一个问题,所冲突也是影响数据库并发访问的一个重要因素. MySQL表概述 相比其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制.比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking):BDB存储引…
本节将讨论如何使用myisamchk检查和修复MyISAM表. 同时,你可以用myisamchk来检查,修复和优化数据库表.下面将讲述如何执行这些操作并建立维护计划. 虽然使用myisamchk很安全,但在操作前做个备份总是个好Idea. 当然也可以使用Sql达到与myisamchk相同的效果: To check MyISAM tables, use CHECK TABLE. To repair MyISAM tables, use REPAIR TABLE. To optimize MyISA…
最近一个统计系统的大表需要加字段,表的引擎是myisam,表大小在3亿,物理文件在106G.想想都蛋疼.那么这种情况下怎么把字段撸上去呢? 1. 首先想到了<高性能MySQL>提到的直接更改表结构文件(frm),但是在经过测试以后,发现提示表损坏了,需要repair,只好放弃了. 2. 使用pt-online-schema-change,刚开始跑没有问题,后面在凌晨发现影响业务了,也只好放弃了. 3. 最近GitHub开源的gh-ost,属于新鲜玩意,还没有研究,只好放弃. 4. 创建新表,l…
一.本文说明 由于刚学mysql所以动手做了一些实验. 二.实验内容 1.验证MyISAM有AUOT_INCREMENT coloumn功能 ----在这里是对现有表t,增加一个主键----mysql> alter table t add column id1 int not null auto_increment,add primary key(id1); Query OK, rows affected (0.02 sec) Records: Duplicates: Warnings: mys…
关于对MYISAM表的压缩,可以使用myisampack和myisamchk完成(myisampack完之后必须进行myisamchk才能使用压缩后的表,而且是只读的), 其详细地用法可以参考官方文档: http://dev.mysql.com/doc/refman/5.1/zh/client-side-scripts.html. 这两个操作需要谨慎使用,在压缩之前需要确认mysqld已关闭或者要压缩的表不会有其他的sql操作:而且压缩过程会很占用cpu资源,建议在服务器空闲的状态进行. 下面是…