[基础] 序列却片
我们为什么需要却片?[root@DataHacker Desktop]# cat slice.py #!/usr/bin/env python import sys print sys.argv [root@DataHacker Desktop]# python slice.py -a -b -c [\'slice.py\', \'-a\', \'-b\', \'-c\'] 但通常,我们只对输入的参数感兴趣,所以:[root@DataHacker Desktop]# cat slice.py #!/usr/bin/env python import sys print sys.argv[1:] [root@DataHacker Desktop]# python slice.py -a -b -c [\'-a\', \'-b\', \'-c\']之后,也只要处理这个参数列表即可SHELL中的文本却片
Python是朵两生花
两生花是西方传说中的一种植物,两个花朵亲密无间,却始终朝着两个相反的开放,直到损落的那一瞬间才有此生唯一一次的相顾。本文寓意让开在Python中的两生花能朝潮暮暮相知相识相对,盖因作者能力有限,一时间无法亭亭如盖也,但也会坚持更新本文,以期两生花能生生世世相对。1 __repr__ &&__str__如果没有他们?那么我们只能得到对象在内存中的位置In [1]: class Cte
MySQL Schema设计(四)一个MySQL里的JQuery:common_schema
我们总要在一定的框架中活着,框架的构成有来自法律,有来自道德的,还有来自潜规则的。大部分人只求安生的活着,玩命的人毕竟是少数,有人打破框架平度青云,也有人打破框却架坠落深渊。每每跟做开发的同学沟通,就会听到一大滩框架名称,觉得很是高上大的样子。但他山之石可以攻玉,在MySQL当中也是有框架,这便是我们要介绍的common_schema。高性能MySQL一书作者&
MySQL Schema设计(三)利用Python操作Schema
弓在箭要射出之前,低声对箭说道,“你的自由是我的”。Schema如箭,弓似Python,选择Python,是Schema最大的自由。而自由应是一个能使自己变得更好的机会。㈠ MySQLdb部分表结构:mysql> use sakila; mysql> desc actor; +-------------+----------------------+------+-----+-------------------+-----------------------------+ | Field | Type | Null | Key | Default | Extra | +-------------
MySQL Schema设计(二)精打细算,油盐不断
茹志鹃在《妯娌》中说,“再看红英自己,那是连半个钟头的工都不肯耽误的,也从没见她吃过一口零食,一看就知道是个会精打细算、会过日子的人。”曾有人调侃,已婚身份最是适合DBA,毕竟,不当家不知柴米贵,年底的资源容量订购,那一分钱都是心头肉啊,会吃的吃千顿,不会吃的吃一顿。而且,故障诊断以及性能调优时,OS层的APP直接拖垮DB的案例也是家珍如数啊
MySQL Schema设计(一)范式不能当'范'吃
RDBMS之父Codd于1970年代初提出范式,其出发点是为了减少数据库中数据冗余,增进数据的一致性。但冗余是奢侈的,因为那个年代的存储空间极其昂贵。理解完这一背景并对范式的持续深入后,目的是为了能更好地利用及打破规范和标准。毕竟范式带来了一些问题:● 紧耦合,表之间表现为强依赖,在业务高速增长后,将导致拆分的老大难问题● Join成本,表关联开销大,内
MySQL ALTER TABLE: ALTER vs CHANGE vs MODIFY COLUMN
写作背景MySQL的ALTER TABLE操作常令DBA闻而变色,即使有Percona的OSC保驾护航,依然不堪轻易出手,但不是所有的ALTER TABLE都会引起表重建,从而需要花费数个小时甚至数天才能完成,本文对这3者作出简单区别,希望在万不得已时能是最后的一根稻草。ALTER COLUMN语法:ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}作用:设置或删除列的默认值。该操作会直接修改.frm文件而不涉及表
我为什么不向你推荐书籍
书这个东西,最是不能靠别人推荐的。道理跟「只能介绍女人不能介绍女朋友」是一样的,鬼知道你适合什么。好书从来都是,甲之蜜糖,乙之砒霜。但其实,没有绝对的好书。人生不同阶段,看山是山,看山不是山,看山还是山。另外,就算只有一个人推荐某本书,并不表示这本书不是好书何况是,还有那久久不能忘怀的书托有的人以「节省时间,只看经典?基于信任,你
索引的另一个好处及其运用实例介绍
索引用来加速查询或者是件家喻户晓的事,但还有一优势是:降低排序成本下面用2个例子来分析运用实例例1:优化排序分页原语句:select * from t order by col limit 100000,10;改进后语句:select * from t where col >= (select col from t order by col limit 100000,1) limit 10;改进后的好处:1)无需排序(排序只在非聚簇索引col上进行)2)无需回表(利用覆盖索引即可回答查询)例2:消除filesort什么是filesort
DBA的职业发展机会
前天看了这篇Vage:高级DBA的突破之路,云计算革命是DBA发展的瓶颈吗?现在,我想就这个问题谈谈自己或许不成熟的看法。关键得不断地思考自己给企业创造什么价值,自己需要寻找什么样的环境来帮助自己提升。我倒觉得DBA走下神坛是个伪命题,相反地,工作机会会越来越多,同时需求也在不断的提高,不管软件如何完善,终究是要人去做决定我们不会有人希望凭借一招
Linux 文件系统崩溃修复
早上上班发现测试机有点问题.....问题的原因是测试机上周因断电意外关机不过这里也存在一个操作习惯问题一般地,我们在关机时,应该(也算是我自己的习惯):# shutdown -Fh now而不能:# poweroffBy 迦叶Good Luck2013-12-2
MySQL数据一致性检查工具
数据的不一致常令DBA被客服或业务部门投诉,那么一致性便是耳根清净[虽然不能这么说]的良方这里介绍MySQL官方的mysqldbcompare(python写的)和percona公司的pt-table-checksum(perl写的)mysqldbcompare的作用是对比两个数据库的表结构、表数据的一致性并能生成对应补偿的SQL,如主备、线上线下对于差异的展现能通过参数--difftype调控① unified (default)② context③ differ④ sql例子mysql> select * from
MySQL master.info 0字节导致Replication搭建失败
尽管语法正确,但change master 的时候一直报如下错误:ERROR 1201 (HY000):Could not initialize master info structure解决方法很简单,在datadir下把生成的master.info删除这个问题在5.1和5.5都是存在的 By 迦夜2013-11-8Good Luck
MySQL备份:mylvmbackup介绍与使用
需要的依赖库Config::IniFilesMIME::LiteDBD::mysqlDBISys::Syslog建议使用CPAN安装,多快好省首先获得全局读锁,接着将缓存中数据写到磁盘,然后执行LVM快照,最后解锁、以下是我采集的一个主要过程20131105 13:51:17 Info: Connecting to database... 20131105 13:51:17 Info: Flushing tables with read lock... 20131105 13:51:17 Info: Running: lvcreate -s --size=1G --name=mysql_snapshot /dev/vg/mysql 20131105 13:51:18 Info: Unlocking tables... 20
Linux iostat和little's law
先看iostat输出:root@cnFOL:~# iostat -xm 60 10 Linux 3.2.0-54-generic-pae (cnFOL) 2013年10月28日 _i686_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.18 0.06 0.08 0.23 0.00 99.45 Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.13 0.79 0.30 0.30 0.00 0.00 28.74 0.02 26.44 5.89 46.42 4.31 0.26 avg-cpu: %u
为什么MySQL引入Double Writer?
㈠ 是什么 double writer是ibdata1(共享表空间)里面的一块连续空间 BTW:为什么取名时叫buffer呢?难道一切缓冲写都叫buffer,加速读叫cache,哈哈 ㈡ 为什么需要 redo有效应用的前提是data的一致性,当data flush到磁盘时发生故障,比如16K只写了4K 并且redo条目是change vector形式,属于逻辑记录,那么在InnoDB recovery时,redo就不
Nginx 启动、停止、平滑重启
1 启动 # nginx -c /etc/nginx.conf 如果不加 -c 参数,Nginx默认加载conf子目录中的nginx.conf 2 停止 找出Master PID # ps -ef | grep nginx 从容停止 # kill -QUIT MasterPID 快速停止 # kill -TERM MasterPID 或 # kill -INT MasterPID 强制停止 # pkill -9 nginx 3 平滑重启 重启前
MySQL性能医生:OrzDBA
[root@even ~]# svn co http://code.taobao.org/svn/orzdba/trunkA trunk/orzdba_rt_depend_perl_module.tar.gzA trunk/orzdbaA trunk/orzdba工具使用说明.pdf取出版本 4。[root@even trunk]# chmod +x orzdba需要在代码160行左右配置MySQL的相关验证信息,如username,password,host,port,sock等㈠ 查看MySQL响应时间(rt)先安装tcprstat# wget http://github.com/downloads/Lowercases/tcprstat/tcprstat-static.v0.3.1.x86_64# ln -sf /root/tcprs
MySQL性能建议者:mysqltuner.pl
[root@even ~]# wget http://mysqltuner.pl/mysqltuner.pl[root@even ~]# chmod +x mysqltuner.pl [root@even ~]# cp mysqltuner.pl /home/mysql/一些简单的命令可从 --help 查阅[mysql@even ~]$ ./mysqltuner.pl >> MySQLTuner 1.2.0 - Major Hayden <major@mhtx.net> >> Bug reports, feature requests, and downloads at http://mysqltuner.com/ >> Run with \'--help\' for additional options and output filteringPlease enter your MySQL a
MySQL varchar计算:求列的数目和计算N的最大值
有道面试题:若一张表中只有一个字段VARCHAR(N)类型,utf8编码,则N最大值为多少?先明白计算的一些规则限制① 存储限制 需要额外地在长度列表上存放实际的字符长度:小于255为1个字节,大于255则要2个字节② 编码限制 gbk:每个字符最多占用2个字节 utf8:每个字符最多占用3个字节③ 长度限制 MySQL定义行的长度不能超过65535,这个限制了