MySQL

MySQL 5.7增强版Semisync Replication性能优化

一 前言 前文 介绍了5.5/5.6 版本的MySQL semi sync 基础原理和配置,随着MySQL 5.7 的发布,新版本的MySQL修复了semi sync 的一些bug 并且增强了功能。 支持发送binlog和接受ack的异步化; 支持在事务commit前等待ACK; 在server层判断备库是否要求半同步以减少Plugin锁冲突; 解除binlog dump线程和lock_log的冲突等等。 本文重点分析 第1,2个改进项,因为原来的模式的确会影响系统的tps,新的异步模式可以提 [详细]

MySQL延迟关联性能优化方法

【背景】 某业务数据库load 报警异常,cpu usr 达到30-40 ,居高不下。使用工具查看数据库正在执行的sql ,排在前面的大部分是: 复制代码 代码如下: SELECT id, cu_id, name, info, biz_type, gmt_create, gmt_modified,start_time, end_time, market_type, back_leaf_category,item_status,picuture_url FROM relation where [详细]

MySQL Semisynchronous Replication介绍

前言 MySQL 5.5版本之前默认的复制是异步(Asynchronous )模式的, MySQL 5.5 以plugins的方式提供了Semisynchronous Replication 模式。在介绍 semi sync 之前,我们先了解:半同步 Asynchronous 和 同步 Synchronous 。 异步复制模式 主库将已经提交的事务event 写入binlog后,即返回成功给app,该模式下并不保证任何已经提交的事务会传递到任何slave并被成功应用。 全同步 [详细]

MySQL replace into 语句浅析(一)

一 介绍 在笔者支持业务过程中,经常遇到开发咨询replace into 的使用场景以及注意事项,这里做个总结。从功能原理,性能和注意事项上做个说明。 二 原理 2.1 当表中存在主键但是不存在唯一建的时候。 表结构 复制代码 代码如下: CREATE TABLE `yy` ( `id` bigint(20) NOT NULL, `name` varchar(20) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT [详细]

Linux系统下查看mysql版本的四种方法

1:在终端下:mysql -V。 以下是代码片段: 复制代码 代码如下:[shengting@login ~]$ mysql -Vmysql Ver 14.7 Distrib 4.1.10a, for redhat-linux-gnu (i686)2:在mysql中:mysql> status;以下是代码片段: 复制代码 代码如下:mysql> status;--------------mysql Ver 14.7 Distrib 4.1.10a, for redhat-linux-gnu ( [详细]

MySQL Sleep连接过多问题解决方法

有时候你在mysql中运行SHOW PROCESSLIST;后会发现数据库中有很多这样的进程:那么造成sleep的原因,有三个,下面是mysql手册给出的解释: 1.客户端程序在退出之前没有调用mysql_close().[写程序的疏忽,或者数据库的db类库没有自动关闭每次的连接。。。] 2.客户端sleep的时间在wait_timeout或interactive_timeout规定的秒内没有发出任何请求到服务器. [类似常连,类似于不完整的tcp ip协议构造,服务端一直认为客户端仍然存在( [详细]

解析Mysql临时表及特点

临时表是当连接没有断开时存在,一旦断开就不会存在,临时表的数据和结构都在内存中,可以做个测验,你创建一个临时表,但是到响应的数据目录下并不会找到.frm文件mysql> CREATE TEMPORARY TABLE tmp_table ( -> -> name VARCHAR(10) NOT NULL, -> value INTEGER NOT NULL -> -> ) ;Query OK, 0 rows affected (0.38 se [详细]

MySQL数据库导出与导入及常见错误解决

MySQL命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin (或者直接将windows的环境变量path中添加该目录) 2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 如我输入的命令行:mysqldump -u root -p jluibmclub > d:\ jluibmclub .sql (输入 [详细]

Mysql 导入导出csv 中文乱码问题的解决方法

导入csv:复制代码 代码如下:load data infile '/test.csv' into table table_name fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n' ignore 1 lines; 导csv:复制代码 代码如下:SELECT * INTO OUTFILE '/test.csv' FIELDS TERMINATED BY [详细]

mysql 导入导出数据库、数据表的方法

Linux下均在控制台下操作。导入数据库:前提:数据库和数据表要存在(已经被创建) (1)将数据表 test_user.sql 导入到test 数据库的test_user 表中[root@test ~]# mysql -uroot -p test < /www/web/test/test_user.sql (2) 将数据库 test.sql 导入到 test 数据库test 中[root@test ~]# mysql -uroot -p test < /www/web/test/test.sq [详细]

使用mysqldump导入数据和mysqldump增量备份(mysqldump使用方法)

1、各种用法说明 A. 最简单的用法:复制代码 代码如下:mysqldump -uroot -pPassword [database name] > [dump file] 上述命令将指定数据库备份到某dump文件(转储文件)中,比如: 复制代码 代码如下:mysqldump -uroot -p123 test > test.dump 生成的test.dump文件中包含建表语句(生成数据库结构哦)和插入数据的insert语句。 B. --opt 如果加上--opt参数则生成的dump文件中稍 [详细]

在linux中导入sql文件的方法分享(使用命令行转移mysql数据库)

因导出sql文件 在你原来的网站服务商处利用phpmyadmin导出数据库为sql文件,这个步骤大家都会,不赘述。 上传sql文件 前面说过了,我们没有在云主机上安装ftp,怎么上传呢? 打开ftp客户端软件,例如filezilla,使用服务器IP和root及密码,连接时一定要使用SFTP方式连接,这样才能连接到linux。注意,这种方法是不安全的,但我们这里没有ftp,如果要上传本地文件到服务器,没有更好更快的方法。 我们把database.sql上传到/tmp目录。 连接到linux,登录 [详细]

详解MySQL中ALTER命令的使用

MySQL的ALTER命令是非常有用的,当想改变表的名称,表的字段,或者如果要添加或删除一个现有的表中的列。 让我们开始创建一个表名为testalter_tbl的用例:root@host# mysql -u root -p password; Enter password:******* mysql> use TUTORIALS; Database changed mysql> create table testalter_tbl-> (-> i INT,-> c CHAR( [详细]

简单介绍MySQL中索引的使用方法

数据库索引是一个数据结构,提高操作的速度,在一个表中可以使用一个或多个列,提供两个快速随机查找和高效的顺序访问记录的基础创建索引。 在创建索引时,它应该被认为是将SQL查询的那些列上创建一个或多个索引的列。 实际上,指数也保持主键或索引字段和指针的实际表中每条记录的表型。 用户无法看到索引,它们只是用来加快查询速度,将用于数据库搜索引擎找到的记录速度非常快。 INSERT和UPDATE语句表上的索引需要更多的时间,成为快速对这些表的SELECT语句。究其原因是,当进行插入或更新,数据库以及需要 [详细]

MySQL中关于临时表的一些基本使用方法

临时表可能是非常有用的,在某些情况下,保持临时数据。最重要的是应该知道的临时表是,他们将当前的客户端会话终止时被删除。 临时表中添加MySQL版本3.23。如果您使用的是旧版本的MySQL比3.23,可以不使用临时表,但可以使用堆表。 如前所述临时表将只持续只要的会话是存在的。如果运行一个PHP脚本中的代码,该临时表将被销毁时,会自动执行完脚本后。如果已连接到MySQL数据库的服务器上,通过MySQL的客户端程序的临时表将一直存在,直到关闭客户端或手动破坏的表。 实例 下面是一个例子,使用临时 [详细]