如何处理字符串末尾空格 去掉末尾空格,取值出来比较的时候自动加上进行比较 Version<=4.1,字符串末尾空格被删掉,version>5.0则保留 储存空间 固定空间,比喻char(10)不管字符串是否有10个字符都分配10个字符的空间 Varchar内节约空间,但更新可能发生变化,若varchar(10),开始若储存5个字符,当update成7个时有myisam可能把行拆 开,innodb可能分页,这样开销就增大 适用场合 适用于存储很短或固定或长度相似字符,如MD5...
索引分为主键索引和非主键索引两种,如果一条sql语句操作了主键索引,MySQL就会锁定这条主键索引;如果一条语句操作了非主键索引,MySQL会先锁定该非主键索引,再锁定相关的主键索引。 在UPDATE、DELETE操作时,MySQL不仅锁定WHERE条件扫描过的所有索引记录(mysql中where后面条件筛选顺序为从左到右与oracle相反,如果where语句的第一个条件就是非主键索引怎会锁住改条件筛选的所有记录,所以第一个条件应该尽量是筛选掉最多可能...
开启mysql慢查询日志 vi /etc/my.cnf slow-query-log = on #开启MySQL慢查询功能 slow_query_log_file = /data/mysql/127-slow.log #设置MySQL慢查询日志路径 long_query_time = 5 #修改为记录5秒内的查询,默认不设置此参数为记录10秒内的查询 log-queries-not-using-indexes = on #记录未使用索引的查询 :wq! #保存退出 service mysqld restart #重启MySQL服务 安装mysqlsla yum install wget perl perl-DBI perl-DBD-My...
外键约束异常现象 如下测例中,没有违反引用约束的插入失败。 create database `a-b`; use `a-b`; SET FOREIGN_KEY_CHECKS=0; create table t1(c1 int primary key, c2 int) engine=innodb; create table t2(c1 int primary key, c2 int) engine=innodb; alter table t2 add foreign key(c2) references `a-b`.t1(c1); SET FOREIGN_KEY_CHECKS=1; insert into t1 values(1,1); select * from t1; c1 c2 1 1 select * ...
Mysql5.0以上的版本可以支持将执行比较慢的SQL语句记录下来。mysql> show variables like ‘long%‘; 注:这个long_query_time是用来定义慢于多少秒的才算“慢查询”+-----------------+-----------+| Variable_name | Value |+-----------------+-----------+| long_query_time | 10.000000 | +-----------------+-----------+1 row in set (0.00 sec)mysql> set long_query_time=1; 注: 我设置了1, 也就是执行时间超...
本文系统来源:http://www.cnblogs.com/vickygu2007/p/5208782.html
record lock 锁住某一行记录 gap lock 锁住某一段范围中的记录 next key lock 是前两者效果的叠加。 问题: 行级锁表现形式:next-key lock 错误码: 1213Deadlock found when trying to get lock; try restarting transaction,重点在于:Deadlock FOUND WHEN trying TO get LOCK; 表示行级锁冲突 解决: 解决方案,可能该更新处于一个大表,而且,表中不断有数据插入,将会出现这样的问题,可以使用更新标识在对应的更新...
方法1,用命令开启慢查询查看复制打印? mysql> show variables like "%long%"; //查看一下默认为慢查询的时间10秒 +-----------------+-----------+ | Variable_name | Value | +-----------------+-----------+ | long_query_time | 10.000000 | +-----------------+-----------+ 1 row in set (0.00 sec) mysql> set global long_query_time=2; //设置成2秒,加上global,下次进mysql已然...
mysql 中的 latch锁和Tlock(事务锁), DML加锁规则,以及死锁分析。一.Latch和Tlock的关系Latch:为保护临界资源的正确性而设计,例如保护正在使用的内存页面不被破坏等。没有死锁检测机制,轻量锁,并且作用对象时内存页面或是内存共享变量.Tlock:事务锁,作用对象是事务,有死锁检测机制.在innodb内部,为了减少死锁的发生概率,Latch不会等待Tlock.线程获取行锁的流程:在对行加锁的时候会先对行所在的页面添加lath,然后再对行添加Tlock,待...
在平时和开发的交流 以及 在论坛回答问题的或称中会发现这个问题被问及的频率非常高。 程序中报错: MySQL server has gone away 是什么意思? 如何避免? 因此,感觉有必要总结一下发生这个问题的原因。今天正好看到一篇外文blog总结的比较好,就翻译过来了 原文:http://ronaldbradford.com/blog/sqlstatehy000-general-error-2006-mysql-server-has-gone-away-2013-01-02/ 原因1. MySQL 服务宕了 判断是否属于这个原因的方法很...
线上生产环境在某些时候经常性的出现数据库操作死锁,导致业务人员无法进行操作。经过DBA的分析,是某一张表的insert操作和delete操作发生了死锁。简单介绍下数据库的情况(因为涉及到真实数据,这里做了模拟,不影响具体的分析和分析的结果。)假设存在如下2张表: Order 表的数据如下: Customer表的数据如下: Order和Customer 在实体关系上存在一个关联,即order实体拥有一个指向customer实体的指针。在数据库设计的时候,o...
处女作,需要大神帮忙优化。#####注:::以下脚本中路径可能需要各位自行进行修改实现原理: 1、shell脚本:通过mysqlbinlog将binlog日志文件格式化输出 定制crontab任务,定时通过向mysql传递show master status查看binlog是否变化,若发生变化则格式化输出已经切换掉的binlog文件 2、shell脚本:定制crontab任务,通过比对md5码,查看格式化后的binlog文件是否发生改变,若发生改变,则调用python脚本进行统计A、格式...
http://blog.csdn.net/tonyxf121/article/details/8393545 B+/-Tree原理 B-Tree介绍 B-Tree是一种多路搜索树(并不是二叉的): 1.定义任意非叶子结点最多只有M个儿子;且M>2; 2.根结点的儿子数为[2, M]; 3.除根结点以外的非叶子结点的儿子数为[M/2, M]; 4.每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个关键字) 5.非叶子结点的关键字个数=指向儿子的指针个数-1; 6.非叶子...
一、 优化概述MySQL数据库是常见的两个瓶颈是CPU和I/O的瓶颈,CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候。磁盘I/O瓶颈发生在装入数据远大于内存容量的时候,如果应用分布在网络上,那么查询量相当大的时候那么平瓶颈就会出现在网络上,我们可以用mpstat, iostat, sar和vmstat来查看系统的性能状态。 除了服务器硬件的性能瓶颈,对于MySQL系统本身,我们可以使用工具来优化数据库的性能,通常有三种:使用索引,...
mysql源文件的压缩文件mysql-5.7.12.tar.gz有48.2Mb,这么大个家伙。 以前学c语言什么的,觉得尼玛个臭c可以干嘛呀,敢看了源文件我彻底震精了,光是一个THD类的说明就占了3000多行, 留我风中凌乱,感慨人类软件工程之伟大,喂猫本科不是或者读研不是学计算机捏。 直接去看局部的类的话肯定要看晕,所以感觉是不是从主线入手好点呢,从驱动程序main先入手吧,然后找到了解压后mysql-5.7.12\sql的mysql.cc, 结果找了半天,个鬼int...