坚信科学,分享技术

>>>尝试更加利于阅读的2014版科学院,以后都在新版上写。

Tag Archives: mysql

硬件为王,软件为帝--记突增的访问

五一归来两周,精力都放在了因为服务器压力突增而来的各种鸡飞狗跳的事情上,今天总结一下,算是对过去两周的总结,希望对各创业团队有所借鉴。 1.访问突增,连锁反应 最先开始出现问题的,是在小负载下没有出现的问题,在大压力时,只要DB一堵,表像就会是循环锁死。 解决之道: 服务要有清晰的架构,开发规范里一定要有明确的架构层次规范,最好还有代码的层次规范。 2.mysql设计不合理,压力指数增加 mysql中存在大量的更新操作,特别是大字段或者变长字段的频繁更新,导致磁盘io居高不下,慢查询越来越多。 硬解决之道: raid卡加电,开启raid写缓存:一般服务器的raid卡都没有开启,开启是有一定用处的,但有一个前提,不是待续的高写入,否则这个写缓存是没有意义的。电池充电时无法缓存,一般三个月充一次电。 转微博:FusionioChina 回复 @YauzZ:多一个故障点。多一份丢数据的可能。而且目前有Raid卡的内存做到1GB。丢不起呀。(5月11日 23:29) 从raid分到多个盘、盘柜,都是从硬件上用多硬盘分担的好方案。 软解决之道: 写方案建立mysql隔离层,在写入前预先处理,类似软件缓存方案,效果明显,修改复杂。 3.后续可做 灵活的中间层数据层切换逻辑,让负载可以随时转移、分隔,基本可以达到“人傻钱多,万事不愁”。

Continue reading

Posted in 架构研究 | Tagged , , | Leave a comment

利用sqoop将mysql数据同步到hive手记

1.下载 http://archive.cloudera.com/cdh/3/sqoop-1.2.0-CDH3B4.tar.gz 2.下载 http://archive.cloudera.com/cdh/3/hadoop-0.20.2-CDH3B4.tar.gz 3.解压 2 4.复制3里hadoop-core-0.20.2-CDH3B4.jar到sqoop的lib下 5.在某处复制mysql-connector-java-5.1.10.jar到sqoop的lib下 6.修改configure-sqoop 注释掉hbase zookeeper检查: #if [ ! -d "${HBASE_HOME}" ]; then # echo "Error: $HBASE_HOME does not exist!" # echo 'Please set $HBASE_HOME to the root of your HBase installation.' # exit 1 …

Continue reading

Posted in java | Tagged , , | 1 Comment

一条SQL引发的对order by的思考

==========尽职的安静的分隔线=========== 在实际工作中遇到下面一个问题: 有一个表,存有2000万数据。 主键为ID bigint(20) NOT NULL auto_increment 另有一字段time timestamp NOT NULL default CURRENT_TIMESTAMP 故事从这两个字段说起: sql1需要从这个表中检索出来时间为2010-05-26 11:55:00之前并且id号大于20000的前10条数据 sql2需要从这个表中检索出来时间为2010-05-26 11:55:00之后并且id号大于20000的前10条数据 两条sql写出来大概是这样子的: sql1:select * from table where time 20000 order by id limit 10; sql2:select * from table where time >'2010-05-26 11:55:00' …

Continue reading

Posted in 架构研究 | Tagged , | 19 Comments

mysql explain详解

doubanclaimed89ad216b01beaf 题注:感谢suchasplus兄弟在第一时间提示explain拼写错误~~~:) 对于经常使用mysql的兄弟们,对explain一定不会陌生。当你在一条SELECT语句前放上关键词EXPLAIN,MySQL解释它将如何处理SELECT,提供有关表如何联合和以什么次序的信息。 借助于EXPLAIN,你可以知道 1)你什么时候必须为表加入索引以得到一个使用索引找到记录的更快的SELECT。 2)你也能知道优化器是否以一个最佳次序联结表。为了强制优化器对一个SELECT语句使用一个特定联结次序,增加一个STRAIGHT_JOIN子句。 官方的关于explain的文档在http://dev.mysql.com/doc/refman/5.1/en/using-explain.html(英文),本文可作为官方文献的不完整通俗读物。 使用的方法 EXPLAIN tbl_name 或: EXPLAIN [EXTENDED] SELECT select_options 前者可以得出一个表的字段结构等等,后者主要是给出相关的一些索引信息,而今天要讲述的重点是后者。 举例 mysql> explain select * from event; +----+-------------+-------+------+---------------+------+---------+------+------+-------+ | id | select_type | table | type | possible_keys | key

Continue reading

Posted in 架构研究 | Tagged , | 3 Comments

jdbc socketRead0 locked 记一个Mysql的不明bug

在开发人人网海量存储系统Nuclear的过程中,使用到mysql引擎,用了spring+dbcp+jdbc,在压力测试的过程中出现了问题。 在追踪java stack的过程中发现如下的问题: java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:113) at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160) at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188) - locked <0x00002aaab9b2b0d8> (a com.mysql.jdbc.util.ReadAheadInputStream) at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2494) at com.mysql.jdbc.MysqlIO.reuseAndReadPacke

Continue reading

Posted in java | Tagged , , | 10 Comments

wordpress nginx php-cgi mysql在128m内存下的vps安装和优化手记[原创]

[ 文章作者:陈臻 本文版本:v1.0 最后修改:2009.8.2 转载请注明原文链接:http://www.54chen.com/688-wordpress-nginx-php-cgi-mysql-memory-in-the-128m-to-install-and-optimize-the-vps-notes/ ] 选取CentOS,因为它是号称最安全及性能都相对较好的Linux系统。系统内存128m,系统用掉30m,有100m左右可用(如图1所示),swap已经有256M,硬盘为5G,除去系统后大约有4G可供捣腾。 图1。   首先,在空白的系统上使用下面的命令,安装gcc等一堆工具和后面php会用到的一些包: yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel …

Continue reading

Posted in 架构研究 | Tagged , , , | 37 Comments

[原创][实测]MySQL时间字段究竟使用INT还是DateTime?

[ 文章作者:陈臻 本文版本:v1.0 最后修改:2009.4.27 转载请注明原文链接:http://www.54chen.com/c/560 ] 环境: Windows XP PHP Version 5.2.9 MySQL Server 5.1 第一步、创建一个表date_test(非定长、int时间) CREATE TABLE `test`.`date_test` ( `id` INT NOT NULL AUTO_INCREMENT , `start_time` INT NOT NULL , `some_content` VARCHAR( 255 ) NOT NULL , PRIMARY KEY …

Continue reading

Posted in linux | Tagged , | 6 Comments

多台slave的mysql replication的配置

 5.1.24版本的配置请看:http://www.masalife.com/archives/173 一、先修改服务器的配置文件        1、Master服务器配置简单,修改my.cnf为:        server-id       = 1 log-bin set-variable=binlog-ignore-db=mysql 2、slave1的配置加入 server-id       = 2 master-host = 172.16.20.135 master-user = rep master-password = cnrep master-port = 3306 log-bin set-variable=replicate-ignore-db=mysql set-variable=replicate-do-db=AliSMS set-variable=replicate-do-db=lcd set-variable=replicate-do-db=loginmanager set-variable=replicate-do-db=samis set-variable=replicate-do-db=sareport set-variable=replicate-do-db=syslog set-variable=replicate-do-db=web_speed log-slave-updates 3、slave2服务器的配置 server-id       = 3 …

Continue reading

Posted in linux | Tagged , | 7 Comments

MySQL的性能调优工具:比mysqlreport更方便的tuning-primer.sh

Sundry MySQL提供的脚本相比mysqlreport更进一步:除了报表还进一步提供了修改建议。安装和使用非常简单: wget http://www.day32.com/MySQL/tuning-primer.sh chmod +x tuning-primer.sh ./tuning-primer.sh 和mysqlreport一样,tuning-primer.sh也支持.my.cnf [client] user = USERNAME password = PASSWORD socket = /tmp/mysql.sock   样例输出:在终端上按照问题重要程度分别用黄色/红色字符标记问题 -- MYSQL PERFORMANCE TUNING PRIMER -- - By: Matthew Montgomery -   MySQL Version 5.0.45 i686 Uptime = 19 days …

Continue reading

Posted in linux, php | Tagged , | 4 Comments

MySQL中各种字段的取值范围

TINYINT -128 - 127   TINYINT UNSIGNED 0 - 255 SMALLINT -32768 - 32767 SMALLINT UNSIGNED 0 - 65535 MEDIUMINT -8388608 - 8388607 MEDIUMINT UNSIGNED 0 - 16777215 INT 或 INTEGER -2147483648 - 2147483647 INT UNSIGNED 或 INTEGER UNSIGNED 0 …

Continue reading

Posted in php | Tagged , | Leave a comment
Page 1 of 212