MySQL
文章平均质量分 50
朝闻道-夕死可矣
朝闻道,夕死可矣!
展开
-
MySQL动态列值转换列名
数据表结构三张表:学生表、课程表、成绩表 CREATE TABLE `student` ( `stuid` VARCHAR(16) NOT NULL COMMENT '学号', `stunm` VARCHAR(20) NOT NULL COMMENT '学生姓名', PRIMARY KEY (`stuid`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB; CREA...转载 2020-12-24 08:41:02 · 2045 阅读 · 1 评论 -
PostgreSQL与MySQL对比
PostgreSQL与MySQL对比都属于开放源码的一员,性能和功能都在高速地提高和增强。MySQL AB的人们和PostgreSQL的开发者们都在尽可能地把各自的数据库改得越来越好,所以对于任何商业数据库使用其中的任何一个都不能算是错误的选择。PostgreSQL :免费原则:对于一个数据库,稳定性和速度并不能代表一切。对于一个成熟的数据库,稳定性肯定会日益提供。而随着硬件性能的飞速提高,速度也不再是什么太大的问题。1架构对比MySQL: 多线程PostgreSQL: 多进程...转载 2020-08-18 17:10:39 · 1431 阅读 · 1 评论 -
MySQL引擎federated
mysql的federated存储引擎,可以实现将远程数据表虚拟到本地数据库,可以做远程数据汇集分析或者同步等工作缺点:效率不高,特别是尽量避免效率不高的SQL开启使用的具体操作1,查看引擎 登录MySQL执行,show engines,如果FEDERATED一列对应的Support显示YES就说明已经配置好了,否则在配置文件中加入[mysqld]federated2,创建到远程的引擎表这里创建了一个到远程服务器的表映射test1,其中192.168.10.10是远端的数据库地址...原创 2020-05-29 11:22:53 · 255 阅读 · 0 评论 -
MySQL实时统计脚本--计算QPS,TPS和线程连接数等
MySQL系统本身提很多状态信息,很多时候我们只关心其中一部分数据信息,如TPS、QPS、连接数等#!/bin/bashmysqladmin -uroot -p'123123' extended-status -i1|awk 'BEGIN{local_switch=0;print "QPS Commit Rollback TPS Threads_con Threads_run...转载 2018-09-04 14:19:24 · 725 阅读 · 0 评论 -
MySQL InnoDB特性:两次写(Double Write)
转自:http://www.ywnds.com/?p=8334一、经典Partial page write问题?介绍double write之前我们有必要了解partial page write(部分页失效)问题。InnoDB的Page Size一般是16KB,其数据校验也是针对这16KB来计算的,将数据写入到磁盘是以Page为单位进行操作的。我们知道,由于文件系统对一次大数据页(转载 2018-01-04 09:26:32 · 14374 阅读 · 9 评论 -
Mysql修改数据库名方法
mysql中如何重命名数据库?这篇文章主要介绍了安全快速修改Mysql数据库名的5种方法,需要的朋友可以参考下1. RENAME DATABASE db_name TO new_db_name这个。。这个语法在mysql 5.1.7中被添加进来,到了5.1.23又去掉了。据说有可能丢失数据。还是不要用的好。详见: http://dev.mysql.com/doc/r转载 2017-12-13 16:36:39 · 2886 阅读 · 0 评论 -
MySQL实时监控工具:doDBA
操作系统及MySQL数据库的实时性能状态数据尤为重要,特别是在有性能抖动的时候,这些实时的性能数据可以快速帮助你定位系统或MySQL数据库的性能瓶颈,就像你在Linux系统上使用「top,sar,iostat」等命令工具一样,可以立刻定位OS的性能瓶颈是在IO还是CPU上,所以收集/展示这些性能数据就更为重要,那都有哪些重要的实时性能状态指标可以反应出系统和MySQL数据库的性能负载呢?转载 2017-11-03 14:25:22 · 4510 阅读 · 0 评论 -
mysql批量修改列类型-生成语句
SELECT CONCAT( 'alter table ', table_name, ' MODIFY COLUMN ', column_name, ' float DEFAULT NULL;' ) AS col, TABLE_NAME, COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEM原创 2016-09-09 19:27:44 · 4014 阅读 · 3 评论 -
mysql监控工具
1、Spotlight on mysql 客户端工具,有漂亮的ui界面,可以监控到mysql的io、qcache、连接数、buffer pool等等,还有预警的功能 当然还有其他的相应监控比如Spotlight on linux2、Lepus-天兔[用的较多] 一个开源的国产监控平台,可以监控到mysql的慢查询、 qcache、连接数、buffer pool等等,可以同时监控多台,配置...原创 2017-11-07 10:04:28 · 1239 阅读 · 0 评论 -
MySQL 加锁处理分析
目录背景MVCC:Snapshot Read vs Current ReadCluster Index:聚簇索引2PL:Two-Phase LockingIsolation Level一条简单SQL的加锁实现分析组合一:id主键+RC组合二:id唯一索引+RC组合三:id非唯一索引+RC组合四:id无索引+RC组合五:id主键+RR组合六:id唯一索...转载 2017-09-22 17:14:08 · 454 阅读 · 0 评论 -
mysql的rownum
使用变量实现,其中T1是任意表SELECT @rownum :=@rownum+1 AS rownum,t.dtFROM (SELECT @rownum:=0,dt FROM T1) t原创 2017-02-16 14:34:08 · 273 阅读 · 0 评论 -
MySQL GTID
1 GTID ? A global transaction identifier (GTID),实在master上每个事务被提交时候被创建和分配的唯一全局事务标识 组成:GTID = source_id:transaction_id 其中sorce_id 来源于datadir下的auto.cnf2,GTID和Binlog 2.1 binlog包含版本信息,previous g原创 2017-09-20 16:57:40 · 360 阅读 · 0 评论 -
Mysql 5.7 账户过期设置
5.7新功能直接使用户过期:alter user loge@'%' password expire;账号可以正常登录,但是所有查询功能不能进行[root@centos ~]# mysql -uloge -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL co原创 2017-09-11 16:20:47 · 2702 阅读 · 0 评论 -
mysql event
1,创建语法:NAME: 'CREATE EVENT'DESCRIPTION:SYNTAX:CREATE [DEFINER = { USER | CURRENT_USER }] EVENT [IF NOT EXISTS] EVENT_NAME ON SCHEDULE SCHEDULE [ON COMPLETION [NOT] PRESERVE] [ENAB...原创 2016-10-28 13:48:31 · 357 阅读 · 0 评论 -
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot exec
SHOW GLOBAL VARIABLES LIKE '%secure%'; 查看secure_file_priv 如果是“”则所有目录都可以使用,详细说明:官网解释:Command-Line Format--secure-file-priv=dir_nameSystem VariableNamesecure_file_privVar原创 2017-08-15 16:54:50 · 649 阅读 · 0 评论 -
InnoDB和MYIASM区别
InnoDB与Myisam区别:最新的版本都是用INNODB作为默认存储引擎一,构成上的区别:每个MyISAM在磁盘上存储成三个文件。第一个 文件的名字以表的名字开始,扩展名指出文件类型;创建时刻,create table时候.frm文件存储表定义。数据文件的扩 展名为.MYD (MYData)。索引文件的扩 展名是.MYI (MYIndex)。 INNODB:分为共享和独立表...原创 2017-08-11 14:05:27 · 1642 阅读 · 1 评论 -
mysql 8 plugin caching_sha2_password could not be loaded
原因,认证方面问题,使用root登录,执行:mysql> alter user 'root'@'%' identified by 'Abc#1234' password expire never;Query OK, 0 rows affected (0.09 sec)mysql> alter user 'root'@'%' identified with mysql_nativ...原创 2018-06-11 15:28:05 · 2057 阅读 · 0 评论 -
Windows+VS2013环境下简单调试MySQL源码
我的系统环境室win7 sp1 64bit,vs版本是2013 community在安装的时候就确保编译文件没问题,以下是简单的调试步骤:将mysqld工程的Debug的:属性->调试->命令参数,设为--console,如下:运行实例: vs的output窗口 进入客户端访问: 说明:默认的data目录在sql下C:\MySQLSC\bld...原创 2018-07-25 14:42:00 · 3262 阅读 · 0 评论 -
MySQL系列
目录MySQL管理MySQL系统管理MySQL的日志文件MySQL事务日志事务的特性以及隔离级别MySQL的锁原创 2019-03-09 20:26:17 · 222 阅读 · 0 评论 -
MySQL中varchar最大长度是多少?
一. varchar存储规则:4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节 二. varchar和char 的区别:char是一种固定长度的类型,varcha...转载 2019-02-16 13:21:58 · 479 阅读 · 0 评论 -
mysql的FLUSH TABLES和FLUSH TABLES WITH READ LOCK
Flush tables:Closes all open tables, forces all tables in use to be closed, and flushes the query cache. FLUSH TABLES also removes all query results from the query cache, like the RESET QUERY CACHE st...原创 2019-02-21 16:36:37 · 592 阅读 · 0 评论 -
mysql UDF
linux平台步骤如下:下载源码:https://github.com/mysqludf/lib_mysqludf_sys一、解压附件的压缩包之后或者配置makefileLIBDIR=/usr/lib64/mysql/plugininstall: gcc -DMYSQL_DYNAMIC_PLUGIN -fPIC -Wall -I /space/mysql/mysql-5.7....原创 2018-11-14 17:00:36 · 422 阅读 · 0 评论 -
mysql 并发线程参数innodb_thread_concurrency
一、thread_concurrency首先,最重要的一点,这个参数已经在最新版本的MySQL中被移除了,官方最新5.7版本的doc上面对thread_concurrency有这样的说明:thread_concurrency变量是针对于Solaris 8及低版本的系统,设置了这个变量MySQL会调用thr_setconcurrency()函数。这个函数允许应用程序给同一时间运行的线程系统提...转载 2018-11-01 14:24:06 · 11323 阅读 · 0 评论 -
MySQL数据库负载很高的解决办法
一、应急解决办法在MySQL数据库连接数很多,而且大多属于活跃的状态时MySQL机器基本上负载很高,属于基本上快要死去的状态了. 这时怎么办呢?有可能两个办法.第一: 先限制Innodb的并发处理.如果innodb_thread_concurrency = 0 可以先改成 16或是64 看机器压力,如果 非常大,先改成16让机器的压力下来,然后慢慢增达,适应自已的业务. 处理方法:...转载 2018-11-01 11:30:50 · 3853 阅读 · 0 评论 -
关于innodb中MVCC的一些理解
一、MVCC简介MVCC (Multiversion Concurrency Control),即多版本并发控制技术,它使得大部分支持行锁的事务引擎,不再单纯的使用行锁来进行数据库的并发控制,取而代之的是把数据库的行锁与行的多个版本结合起来,只需要很小的开销,就可以实现非锁定读,从而大大提高数据库系统的并发性能读锁:也叫共享锁、S锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改...转载 2018-10-24 15:19:44 · 243 阅读 · 0 评论 -
为什么MyISAM会比Innodb的查询速度快
INNODB在做SELECT的时候,要维护的东西比MYISAM引擎多很多: 1)数据块,INNODB要缓存,MYISAM只缓存索引块, 这中间还有换进换出的减少; 2)innodb寻址要映射到块,再到行,MYISAM记录的直接是文件的OFFSET,定位比INNODB要快 3)INNODB还需要维护MVCC一致;虽然你的场景没有,但他还是需要去检查和维护MVCC (Multi...转载 2018-10-21 17:33:30 · 2236 阅读 · 1 评论 -
myisam和innodb中count(*)的区别
INNODB在做SELECT的时候,要维护的东西比MYISAM引擎多很多:1)数据块,INNODB要缓存,MYISAM只缓存索引块, 这中间还有换进换出的减少; 2)innodb寻址要映射到块,再到行,MYISAM记录的直接是文件的OFFSET,定位比INNODB要快3)INNODB还需要维护MVCC一致;虽然你的场景没有,但他还是需要去检查和维护MVCC (Multi-Version...原创 2018-10-23 14:05:03 · 1565 阅读 · 0 评论 -
mysql8.x新特性
一,默认编码utf8 默认编码使用utf8mb4,utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符历史,MySQL数据库的 “utf8”并不是真正概念里的 UTF-8。MySQL中的“utf8”编码只支持最大3字节每字符。真正的大家正在使用的UTF-8编码是应该能支持4字节每个字符。MySQL的开发者没有修复这个bug。他们在2010年增加了一个变通的...原创 2018-10-25 14:08:22 · 2073 阅读 · 0 评论 -
FLUSH TABLES WITH READ LOCK和set global read_only
set global read_only或者设置配置文件是全局级别的,置为1之后root用户还可以写,其他用户不能写FLUSH TABLES WITH READ LOCK是表级别的(使用UNLOCK tables解锁),执行之后所有用户都不能写...原创 2018-10-22 11:15:11 · 527 阅读 · 0 评论 -
InnoDB: page_cleaner: 1000ms intended loop took
环境:windows+5.7.12错误详情: [Note] InnoDB: page_cleaner: 1000ms intended loop took 5258ms. The settings might not be optimal. (flushed=200 and evicted=0, during the time.)此错误来自于..\storage\innobase\bu...原创 2018-08-31 10:16:20 · 17388 阅读 · 1 评论 -
Mysql索引类别
Mysql目前的几种索引类型:FULLTEXT,HASH,BTREEFULLTEXT即为全文索引,之前只有MyISAM引擎支持,不过最新的5.7版本中InnoDB中也加入了。其可以在CREATE TABLE ,ALTER TABLE ,CREATE INDEX 使用,目前只有 CHAR、VARCHAR ,TEXT 列上可以创建全文索引。ALTER TABLE tablename ADD...原创 2017-08-11 14:01:18 · 267 阅读 · 0 评论 -
Mysql字符集
字符集是我们必须面对的,稍不留神就会出现乱码;有两个概念,一个是Character Sets,一个是Collations,前者是字符内容及编码,后者是对前者进行比较操作的一些规则可以在数据库实例,数据库,表,列修改字符集在源码安装时候要注意指定字符集,默认是latin1,而二进制默认是utf8default-character-set是默认建库的字符集客户端连接相关的字符集邮三原创 2017-04-21 10:00:27 · 269 阅读 · 0 评论 -
mysql 参数&配置
一,一些配置:[client]socket=MYSQLport=3306[mysql]default-character-set=utf8[mysqld]port=3306character-set-server=utf8default-storage-engine=INNODBserver-id=1# basedir="D:/MySQL5/"# datadir=D...原创 2017-08-09 11:43:08 · 450 阅读 · 0 评论 -
mysql中insert into on duplicate key update 和replace into的区别
1,insert into t1(c1,c2) select c3,c4 from t2 on duplicate key update c1=c3;如果存在主键列c2则只更新c1为c3,否则如果是t1种有自增主键p_c1 则需要给t1添加一个unique约束;一句话,如果表t2中可以唯一确定一行,则会将匹配上的在update后更新,否则删除在插入所有行2,replace into t1 s...原创 2017-02-16 14:56:07 · 406 阅读 · 0 评论 -
ubuntu12.4 下eclipse 编译mysql
1,调试工具安装 gcc,g++,make,cmake,autoconf,gdb,eclipse可以使用apt-get安装,也可以使用rpm,cdt在eclipse中菜单栏中选择Help->Install New Software->Add,我使用的是http://download.eclipse.org/tools/cdt/releases/helios源2,mysql安装 一原创 2017-01-11 09:58:40 · 376 阅读 · 0 评论 -
mysql大表重定义
mysql5.6以后的版本,小表直接操作表结构变更即可,如果是大表,那么就避免直接操作,就要使用pt-online-schema-change工作原理:原理跟oracle的在线冲定义类似,创建一个和你要执行alter操作的表一样的空表结构,执行表结构修改,然后从原表中copy原始数据到表结构修改后的表,当数据copy完成以后就会将原表移走,用新表代替原表,默认动作是将原表drop掉。在原创 2016-12-30 16:34:01 · 611 阅读 · 0 评论 -
centos7 LVS+Keepalived实现mysql的负载均衡
简介Keepalived的作用是检测服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器,跟lvs一起配合使用作为很好的搭档注意,这里实现的是lvs...原创 2017-01-05 14:41:32 · 2914 阅读 · 2 评论 -
mysql设置参数
一般情况有两种,会话,全局的分别对应session ,global比如修改全局 set global wait_timeout=10000;有些参数不能修改不过借助于gdb可以修改system gdb -p $(pidof mysqld) -ex "set max_connections=1500" -batch原创 2016-12-21 11:45:54 · 301 阅读 · 0 评论 -
mysqlslap
mysqlslap 是mysql自带的一个性能测试工具,mysqlslap Ver 1.0 Distrib 5.1.73, for redhat-linux-gnu (x86_64)Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.Oracle is a registered t原创 2016-12-06 17:16:31 · 299 阅读 · 0 评论 -
mysql大小问题
小记:SELECT -- t2.table_schema,t2.table_name,t2.column_name,upper(t2.column_name),t2.column_type,-- case when t2.is_nullable='NO' then 'not null' else 'null' end as isnull1,t2.column_comment,CONCAT(原创 2016-11-23 16:30:11 · 1777 阅读 · 0 评论