摘要:
MySQL5.5原生版本,sync_binlog 1000innodb_flush_log_at_trx_commit 21. 死锁检测压测场景:一个事务里面先insert,再update,insert随意,update对同一条记录更新,并发128,循环10000次压测结果:关闭死锁检测tps:5705打开死锁检测tps:1659,结论:在对tps要求比较高的场景中关闭死锁检测很有必要,但是前提是整个涉及的场景中没有死锁,否则的话,关闭死锁检测只会起到相反的作用2. 备库延迟压测场景:尽量让主库的tps高,看主库的tps达到多少时备库开始延迟压测结果:主库的tps达到9k以上时,备库开始延迟, 阅读全文
摘要:
目前生产环境的分库分表的表,含有primary key(id)的,都是由tddl分配的,而不是mysql自带的auto increment,而如果对于已经带了auto increment的,在高并发下,要比不带auto increment的有什么性能上的劣势吗? 从理论上来讲,mysql在为auto increment维护了一个表锁,即使insert的时候指定了id,也还是会触发mysql维护表锁,到底性能相差多大呢?我在mysql5.1.48上面做了一个小测试:innodb_autoinc_lock_mode = 1,关于innodb_autoinc_lock_mode的分配策略,... 阅读全文
摘要:
背景:今天观察数据库文件的时候发现:ls -la *.ibd-rw-rw---- 1 mysql dba 98304 Sep 25 2012 a.ibd -rw-rw---- 1 mysql dba 131072 Oct 12 2012 b.ibd-rw-rw---- 1 mysql dba 98304 Oct 17 15:34 c.ibd -rw-rw---- 1 mysql dba 98304 Jan 4 13:33 d.ibd$stat... 阅读全文
摘要:
前一段时间接了个业务比较特殊,它的场景是这样的:–每天入库数据量3亿左右–写多读少,每隔5分钟写入10w数据–按天分表,多年同一天的数据在一个表里–同一天的数据每隔5分钟更新一次–数据来源,经过Hadoop分析过后的csv文件--类似于这样的,会有并发同时跑,但是数据量和间隔时间不一样数据库配置:普通sas盘,24G内存,16核CPU,单实例,1主1备优化前的做法是:1. 把原来的前几分钟的数据根据日期delete掉2. 使用程序读取分析过的csv文件,拼装成insert into tbname (col1,col2,......) values (val1,val2,....,),(val. 阅读全文
摘要:
创建按天分表的程序:#!/usr/bin/python2.6# -*- coding: utf-8 -*- import datetime#import MySQLdb tbname="alter table tip"ddl="""add index idx_timestamp(timestamp,appid,appcallcount);""" #dbuser="root"#dbpass=""#dbname="test"#socket="/hom 阅读全文
摘要:
今天发现的,先记录下:表结构由bigint改成varchar,改之前和改制后查询结果对比如下:先记录下 阅读全文
摘要:
今天有开发反应他的建表语句错误,我看了下,提示:MySQL Error 1170 (42000): BLOB/TEXT Column Used in Key Specification Without a Key Length原因是:MySQL不允许在BLOB/TEXT,TINYBLOB, MEDIUMBLOB, LONGBLOB, TINYTEXT, MEDIUMTEXT, LONGTEXT,VARCHAR建索引,因为前面那些列类型都是可变长的,MySQL无法保证列的唯一性,只能在BLOB/TEXT前n个字节上建索引,这个n最大多长呢?做个测试:root@test 03:53:58>c 阅读全文
摘要:
500w的表,SELECT distinct id FROMsbtest w1 limit 10000,20;SELECT id FROMsbtest w1 group by id limit 10000,20;先记录下,group by 要比distinct速度快,distinct和group by类似,只不过distinct是先分组,再从无序分组里面取出不同的,group by是有序的 阅读全文
摘要:
有这样一个业务场景,数据的写入就是回流,平常都是依赖user_id查询,数据大概5亿左右,因此我做了下测试,测试过程如下:性能测试机的环境:View Code Uptime | 364 days, 4:02, 2 users, load average: 0.43, 0.19, 0.06 Platform | Linux Release | Red Hat Enterprise Linux Server release 5.4 (Tikanga) Kernel | 2.6.18-164.el5Architecture | CPU = 64-bit, OS =... 阅读全文
摘要:
最近有一台MySQL的从库老是报延迟,观察到:FLUSH TABLES WITH READ LOCK,阻塞了4个多小时,还有另外一条SQL语句select *,从现象上来看是select * 阻塞了flush tables with read lock。 flush tables with read 阅读全文