- 博客(30)
- 资源 (1)
- 收藏
- 关注
原创 数据库性能优化之冗余字段的作用
什么是冗余字段?在设计数据库时,某一字段属于一个表,但它又同时出现在另一个或多个表,且完全等同于它在其本来所属表的意义表示,那么这个字段就是一个冗余字段。——以上是我自己给出的定义冗余字段的存在到底是好还是坏呢?这是一个不好说的问题。可能在有人看来,这是一个很蹩脚的数据库设计。因为在数据库设计领域,有一个被大家奉为圭 臬的数据库设计范式,这个范式理论上要求数据库设计逻辑清晰、关系明确,比如,”用户...
2018-04-08 10:09:31
527
原创 hbase standalone + hadoop standalone 安装
root@EQX-147:~# mv hbase-0.94.2-security /vobiledata/hbasecyberlocker/hbaseroot@EQX-147:~# vi /vobiledata/hbasecyberlocker/hbase/conf/hbase-env.sh export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk expo...
2018-04-08 09:32:15
286
原创 pt-table-checksum做主从一致性校验
一. 参考http://www.percona.com/doc/percona-toolkit/2.1/pt-table-checksum.html二. 前言pt-table-checksum是一个在线验证主从数据一致性的工具,主要用于以下场景:1. 数据迁移前后,进行数据一致性检查2. 当主从复制出现问题,待修复完成后,对主从数据进行一致性检查3. 把从库当成主库,进行数据更新,产生了”脏数据”...
2018-04-08 09:31:22
489
原创 MySQL GAP锁初步认识
锁,在现实生活中是为我们想要隐藏于外界所使用的一种工具。在计算机中,是协调多个进程或县城并发访问某一资源的一种机制。在数据库当中,除了传统的计算资源(CPU、RAM、I/O等等)的争用之外,数据也是一种供许多用户共享访问的资源。如何保证数据并发访问的一致性、有效性,是所有数据库必须解决的一个问题,锁的冲突也是影响数据库并发访问性能的一个重要因素。从这一角度来说,锁对于数据库而言就显得尤为重要。My...
2018-04-08 09:23:36
2562
原创 tinyint,smallint,int,bigint后面括号的含义
tinyint存1个字节(unsigned 存0--255,无 存-128 --127) smallint存2个字节(unsigned 存0—65535 ,无 存-32768--32767) int存4个字节(unsigned 存2的32次方,无 存-2的31次方 –2的31次方-1) bigint存8个字节(unsigned 存2的64次方,无 存-2的63次方 –2的63次方-1)做个实验: ...
2018-04-04 11:33:17
2844
原创 truncate和delete区别
Truncate table 表名 速度快,而且效率高,因为: TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。 DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用...
2018-04-04 11:32:26
252
原创 profiles在mysql中的应用
MYSQL的profiling功能要在Mysql版本5.0.37以上才能使用。profile主要的功能是在于了解一条sql语句在开销(cpu利用情况,IO情况等等)开启profiling:set profiling=1;查看是否设置生效:select @@profiling;默认是0,设置成功是1select * from bb where id = 1;set prfiling = 0;SET ...
2018-04-04 11:30:34
181
原创 binlog三种模式的区别(row,statement,mixed)
binlog模式分三种(row,statement,mixed)1.Row日志中会记录成每一行数据被修改的形式,然后在slave端再对相同的数据进行修改,只记录要修改的数据,只有value,不会有sql多表关联的情况。优点:在row模式下,bin-log中可以不记录执行的sql语句的上下文相关的信息,仅仅只需要记录那一条记录被修改了,修改成什么样了,所以row的日志内容会非常清楚的记录下每一行数据...
2018-04-04 11:29:04
521
原创 TPCC测试
tar zxvf tpcc-mysql.tar.gzxuebb@xuebinbin:~#cd tpcc-mysqlxuebb@xuebinbin:~/tpcc-mysql# cd srcxuebb@xuebinbin:~/tpcc-mysql/src# make all (清理make clean)1、 找不到mysql的头文件。 解决:export C_INCLUDE_PAT...
2018-04-04 11:27:46
1428
原创 sysbench 数据库性能测试
sysbench是一款开源的多线程性能测试工具,可以执行CPU/内存/线程/IO/数据库等方面的性能测试。数据库目前支持MySQL/Oracle/PostgreSQL。本文只是简单演示一下几种测试的用法,后续准备利用sysbench来对MySQL进行一系列的测试。具体的一些参数设置,需要根据不同的测试要求来进行调整root@xuebinbin:~# sysbench --mysql-db=test...
2018-04-04 11:27:07
344
原创 InnoDB行格式(COMPACT,redundant)对比
InnoDB行格式分两种格式(COMPACT,redundant)默认为COMPACT compact的存储格式为 首部为一个非NULL的变长字段长度列表,而且是按照列的顺序逆序放置的,当列的长度小于255字节,用1字节表示,若大于255个字节。用2个字节表 示,varchar的最大长度为65535>,因为两个字节为16位,即65535,第二部分是NULL标志位,该位指示了该行是否有NULL...
2018-04-04 11:26:08
1527
原创 innodb_force_recovery对mysql 宕机恢复影响
在关闭时,参数innodb_fast_shutdown影响着表的存储引擎为InnoDB的行为。该参数取值为0、1、20 代表党MySql关闭时,InnoDB需要完成所有的full purge 和 merge insert buffer操作,这会需要一些时间。1 代表不需要完成上述的full purge ,merge insert buffer操作,但是在缓冲池的一些数据脏页还是会刷新到磁盘。2 代...
2018-04-04 09:57:52
1286
原创 binlog,redo log,undo log区别
什么是binlogbinlog日志用于记录所有更新且提交了数据或者已经潜在更新提交了数据(例如,没有匹配任何行的一个DELETE)的所有语句。语句以“事件”的形式保存,它描述数据更改。binlog作用1.恢复使能够最大可能地更新数据库,因为二进制日志包含备份后进行的所有更新。2.在主复制服务器上记录所有将发送给从服务器的语句。 binlog 主要参数log_bin设置此参数表示启用binlog功能...
2018-04-04 09:54:05
348
原创 binlog记录事务顺序问题测试
问题:1.开启了一个事务,往里面插一条记录,然后过段时间再commit,里面记录的数据的时间是什么时候?2.先后开启了两个事务,a先开,b后开,然后各自插入一条记录,b先commit,a后commit.binlog里面谁在前面测试一:开启一个事务root@xbb 10:54:49>set autocommit =0;Query OK, 0 rows affected (0.00 se...
2018-04-04 09:49:21
1593
原创 atlas+mysql 实现读写分离
目前Mysql 自己本事做不到完全的HA,不过可以利用keepalived做读HA。atlas 是奇虎360 改造后的MySQL Proxy,支持Mysql 读写分离功能。1, 下载安装Altas(mysql proxy)wget https://s3.amazonaws.com/github-cloud/releases/9273884/5b567b50-f8fa-11e2-8273-f9d0...
2018-04-03 16:53:17
612
原创 MySQL5.6 新性能之二(exchange partitions)
分区是MySQL5.1版本时添加了对分区的支持。分区的过程是将一个表或者索引分解为多个更小,更可管理的部分,每个分区都是独立的对象,可以独立处理,也可以作为一个更大的对象的一部分进行处理。MySQL数据库支持的分区类型为水平分区,并不支持垂直分区。此外MySQL数据库的分区是局部分区索引,一个分区中既存放了数据有存放了索引。而全局 分区是指数据存放在各个分区中,而索引存放在一个对象中。目前MySQ...
2018-04-03 16:52:51
992
原创 MySQL5.6 新性能之一(online DDL)
目前我们线上统一用的MySQL 5.1系列,每次大表升级做DDL操作时,都会花费大量的时间,同时也会影响宕机时间,MySQL 5.6在这方面做了很大的改进,大大的缩短了DDL操作时间,详情见如下实验:MySQL 5.6.16窗口一:添加一个索引mysql> ALTER TABLE task_new add key idx_company_id(company_id);Query OK,...
2018-04-03 16:52:19
1084
原创 MySQL检查修复主从数据一致性工具percona
数据库主从不一致一直是DBA比较头疼的事情,通常我们仅有一种办法,热备主库,然后替换掉所有的从库。这不仅代价非常大,而且类似治标不治本的方案,让人十分不安。因此我们需要合适的工具,至少帮我们回答下面三个问题:是从库延迟导致了用户看到的数据不一致,还是真的主从数据就不一致?如果不一致,这个比例究竟多大?下次还会出现吗?回答清楚这几个问题,有助于我们决定是否修复,以及修复的方式,还可以帮我们找出不一致...
2018-04-03 16:51:02
1003
原创 记录slow log相关的参数
今天在分析slow log,发现自己明明设置了大于1s的时候才记录到slow log里,为什么<5s的SQL会记录进来呢?于是查询了相关的参数log_queries_not_using_indexeslog_outputslow_query_logslow_query_log_filelong_query_time以上5个参数的设置都会影响slow log的记录,我们一一介绍上面的参数的含义...
2018-04-03 16:49:37
493
原创 刷新error log
小菜鸟,之前一直有误区,以为刷新error log只需要在MySQL中flush logs就可以了,结果发现每次都没有成功,正确的做法如下shell >mv a.err a.err-oldmysql>flush logs;退出就会发现errorlog已经重新生成一个文件a.err...
2018-04-03 16:49:05
216
原创 crontab 执行不成功,脚本手动执行成功
请确保手工可以执行该文件(给sh文件增加X权限 chmod +x )确认开始crond服务(service crond status/start/stop)如果看到crond is running 依旧不能执行的话,请重启crond,依旧不行,那么给sh文件制定bash环境if [ -f ~/.bash_profile ];then . ~/.bash_profilefi重启crond 服务se...
2018-04-03 16:48:29
5419
原创 Bcp导出SQL Server乱码
sp_configure 'show advanced options',1reconfiguregosp_configure 'xp_cmdshell',1reconfiguregoexec master..xp_cmdshell 'bcp database.table out D:\xbb\table.txt -t ",,,,," -c -C65001 -T -S'bcp {[[databa...
2018-04-03 16:47:46
2192
原创 powerpath安装报错处理
[root@localhost yum.repos.d]# emcpreg -install[root@localhost yum.repos.d]# /etc/init.d/PowerPath startStarting PowerPath: Aborting PowerPath start since DM-Multipath is active. Refer to PowerPath for...
2018-04-03 16:46:49
824
原创 ssh登录慢的问题解决
最近接到一台新机器,可是ssh连其他linux机器,会等待10来秒才有提示输入密码。严重影响工作效率。登录很慢,登录上去后速度正常,后来查阅资料发现有以下可能:1. DNS反向解析的问题OpenSSH在用户登录的时候会验证IP,它根据用户的IP使用反向DNS找到主机名,再使用DNS找到IP地址,最后匹配一下登录的IP是否合法。如果客户机的IP没有域名,或者DNS服务器很慢或不通,那么登录就会很花时...
2018-04-03 16:45:48
193
原创 mysql 中NULL被如何处理
1.enum字段与int字段有null情况2.null字段在timestamp,datetime中的情况3.select count在字段有null的情况4.not in 和not exists在有null值存在的情况举例:1.enum字段与int字段有null情况因为在MySQL中有三种状态:True、False、Unknown,任何NULL的比较操作都是Unknown状态,NULL跟任何比较操...
2018-03-26 17:33:02
983
原创 MySQL死锁情况
最近发现业务DDL操作执行缓慢,后调查,发现以下两条SQL产生死锁问题------------------------LATEST DETECTED DEADLOCK------------------------180205 21:34:29*** (1) TRANSACTION:TRANSACTION 5 2578066233, ACTIVE 28 sec, process no 11909,...
2018-03-26 17:16:09
212
原创 对MySQL锁的一些理解测试
锁分共享锁(读锁)&排他锁(写锁)锁粒度分表锁&行锁表锁为最基本锁策略,也是开销最小的策略。行锁可以最大程度支持并发处理,同时也带来最大的锁开销。以下是我对锁做的一些测试:隔离级别:repeatable-read表设计:无索引主键情况 CREATE TABLE `table1` ( `id` int(11) DEFAULT NULL, `name` varchar(255) D...
2018-03-26 16:11:38
560
原创 orzdba在mysql 5.6中解决密码告警
5.6中设置了密码安全,故orzdba往常的在orzdba文件中修改登录mysql方式,写密码进去就会报Warning: Using a password on the command line interface can be insecure如何解决,可以通过下面两个方法1.把数据库密码写到my.cnf配置文件里面2.同样利用mysql5.6的新特性, mysql_config_edit,可以...
2018-03-26 16:09:09
865
原创 sync_binlog与innodb_flush_log_at_trx_commit不同设置的场景(sysbench压测结果)
innodb_flush_log_at_trx_commit主要针对innodb的redo从log_buffer到log file的同步而设置的如果innodb_flush_log_at_trx_commit设置为0,log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行.该模式下,在事务提交的时候,不会主动触发写入磁盘的操作。如果inno...
2018-03-26 16:08:27
472
原创 MySQL innobackupex备库备份导致主备延时
最近对数据库做了升级,从5.1升级到5.6,同时对备库做了innobackupex备份。然后奇怪的事情发生了,同样大小的两个备库,A备份的时候没有延时,响应时间正常,B备份延时400S左右,响应时间较长。于是进行了一番调查。从MySQL 5.6的配置参数对比,两个实例都是一样,于是排除配置参数导致延时,从机器的性能对比,两个实例的服务器配置都是一样,连接数,qps都类似。于是着手查...
2018-03-26 16:07:18
552
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人