MySQL中的delimiter作用
MySql中delimiter的作用是什么?这个命令与存储过程没什么关系吧。其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。默认情况下,delimiter是分号;。在命令行客户端中,如果有一行命令以分号结束,那么回车后,mysql将会执行该命令。如输入下面的语句mysql> select * from test_table;...
MySQL5.7新特性之单表支持多个DML触发器
MySQL5.6不支持一个表有多个UPDATE/DELETE/INSERT触发器。 下边看一个例子: 创建三个测试表:点击(此处)折叠或打开mysql> create table t_trig_test_01 (name varchar(10));Query OK, 0 rows affected (0.07 sec)mysql> create ...
MySQL5.7新特性之函数索引
在MySQL5.7之前的版本中,函数索引是无法用到索引的,也不支持虚拟列,下边的SQL执行时候回进行全表扫描: select * from t1 where mod(mode_id,8)=1 MySQL5.7支持虚拟列,并且可以使用函数索引。 确定数据库版本:点击(此处)折叠或打开mysql> select version();...
MySQL5.7新特性之数据碎片整理
对于innodb存储引擎,例如删除一行,这些行只是标记为“已删除”,而不是真正从索引中物理删除了,因而空间也没有真正得到释放。Innodb的Purge线程会异步的来清理这些没有用的索引键和行,但是依然没有把这些释放出来的空间给系统用,因而会导致页面中存在很多空洞。 MySQL5.7之前的版本中,需要使用OPT...
MySQL5.7新特性之死锁打印到错误日志
在MySQL5.5及之前的版本中,查看死锁需要执行show engine innodb status \G; 在MySQL5.6/5.7版本中,可以在my.cnf配置文件中加入: innodb_print_all_deadlocks=1 就可以把死锁信息打印到错误日志里边。
MySQL5.7新特性之redo log事务日志大小调整
在MySQL5.6/5.7之前的版本中,如MySQL5.5,如果要修改ib_logfile(redo log)大小,步骤如下:1)执行set global innodb_fast_shutdown=0命令,把所有脏数据写入磁盘;2)执行mysqladmin shutdown命令关闭数据库;3)在my.cnf文件里修改innodb_lof_file_size参数值;4)执行mv ib_logfile* ***bak命令,将redo log移动...
MySQL Innodb独立表空间的配置
Innodb独立表空间的配置环境介绍:MySQL版本:5.5.401.查看独立表空间是否开启mysql> show variables like '%per_table%'; +-----------------------+-------+ | Variable_name | Value | +-----------------------+-------+ | i...
MySQL5.7新特性之回收undo log物理文件空间
MySQL的undo log保存在共享表空间ibdata1文件里,随着业务运转,ibdata1会越来越大。在MySQL5.7之前的版本,需要停机利用mysqldump将数据导出,然后重建数据库,再导入数据的方法解决该问题,MySQL5.7提供在线回收的机制。 MySQL5.6版本中,可以把undo log回滚段分离到单独的一个表空间,但是依然没有实...
MySQL5.7新特性之在线动态修改innodb_buffer_pool_size
在MySQL5.7之前的版本中,innodb_buffer_pool_size不能在线修改,只能重启MySQL进程进行修改。MySQL5.7开始可以在线动态修改其大小。在MySQL5.6测试环境:点击(此处)折叠或打开mysql> select version();+-----------+| version() |+-----------+...
MySQL5.7新特性之在线DDL不会锁表
MySQL5.7在线修改varchar字段不在锁表,测试过程如下:点击(此处)折叠或打开mysql> select version();+------------+| version() |+------------+| 5.7.18-log |+------------+...
MySQL5.7新特性之更改索引名字不会锁表
MySQL5.7在更改索引名字时候不会锁表,测试过程如下:点击(此处)折叠或打开mysql> select version();+------------+| version() |+------------+| 5.7.18-log |+------------+...