- 博客(590)
- 资源 (15)
- 收藏
- 关注
原创 深入理解Oracle索引(25):一招鲜、吃遍天之单字段索引创建思路
本文较短、不过实用性很好、还是记录之、 ㈠ 先别看SQL语句、看执行计划、挑出走全表扫的表 ㈡ 回头看SQL语句、分析上述表的约束字段有哪些、检查各个约束字段的索引是否存在 ㈢ 选择可选性最高的约束字段建立索引By David Lin2013-07-01Good Luck
2013-07-01 15:05:33 2712
原创 阿姆达尔定律和数据库并行
这个定律是这样的: 速度的提升受程序中串行部分的限制、而串行的执行时间是不会变的 随着CPU 核数的提升、生产环境对并行的喜爱越发暴露的明显 然而、多核性能未必速度就高、 如果、程序中部分代码是串行、 如果、程序所跑的硬件是串行、 如果、程序所在的OS是串行、 如果、程序所在的DB是串行、 另外、串行不总
2013-06-29 21:45:45 2311 3
原创 IPC 资源、kernel.shmmax和Oracle 共享内存的调整
㈠ IPC 资源查看与释放[root@david ~]# ipcs -m------ Shared Memory Segments --------key shmid owner perms bytes nattch status
2013-06-29 21:26:07 3370
原创 MySQL Troubleshoting:Waiting on query cache mutex
今天被MySQL Query Cache 炕了、线上大量 Waiting on query cache mutex 那么什么是 Query Cache? QC 缓存的是整个SELECT的结果集、而非执行计划、QC的为人原则是:执行查询最快的方式就是不去执行 但是、QC 简单粗暴的失效策略、令人蛋疼、任何不同(空格、TAB缩进、DML等)都会导致
2013-06-29 10:34:21 9023 2
原创 深入理解Oracle索引(24):B*Tree 索引小结
这个索引专题N久未见阳光了、偶觉得特过去、不幸福、于是有了本文 坊间传闻、B*Tree 索引在应用开发阶段、常作"炮灰"状、而在维护时期、则是"马后炮" 即便身世坎坷常被冷眼相待、但到底是B*Tree、魅力无限、全身散发着令人 YY 的韵味、你比如: 如果存在主键或者唯一性约束、则不论是访问1w行、还是1亿行、这个CPU或IO的开销都相去无几呀 哇、、、美
2013-06-28 22:48:26 2731 2
原创 升级 Python到2.7 并安装 IPython
㈠ Python 依赖包# rpm -q gcc gdbm-devel readline-devel ncurses-devel zlib-devel bzip2-develsqlite-devel db4-devel openssl-devel tk-devel bluez-libs-devel make --qf '%{name}.%{arch}\n'|sort ㈡ 安装 Python
2013-06-25 20:37:29 3422
原创 Python 语言前景摘入
Python 的钱途光明、应用域广泛、以下是偶认为比较有意思的几个前景: ㈠ 黑客语言 《unix编程艺术》的作者曾说“精明的perl黑客们都投向了python,而且再也不回头” ㈡ 机器学习语言 《Machine Learing in Action》的作者利用高效的可复用Python代码来阐释如何处理统计数据,进行
2013-06-25 13:16:31 2439
原创 MySQL TroubleShoting:无任何操作、磁盘I/O负载跑满
㈠ 环境: OS : RHEL-5.8 Server:MySQL 5.5 Engine:InnoDB ㈡ 问题: 在无任何操作的前提下、磁盘IO负载都几乎跑满、然后跑了3、4个小时磁盘负载依旧 iotop 部分输出:Total DI
2013-06-25 01:16:24 2926 4
原创 ZipF分布和索引设计
诚如大家所知的、80/20原则:20%的行、会占有80%的访问量 2/8原则是ZipF分布(齐普夫分布)的一个扩展、描述了这样一个定理: 只有少数英文单词经常被使用,大部分的单词很少被使用 当我们面对一个长查询/重建索引策略时、或许可以做个ZipF分布 尽量减少冗余索引的存在、让索引数量刚刚好(PS:貌似太理想了啦)By David Lin2013-06-
2013-06-24 23:59:59 3063 8
原创 MySQL Replication 拓扑图
朴实简单的才是真、那些高端洋气的复制拓扑纯属自虐 实施复制大概会有 4 个原则: ① 一个主库可以有多个备库 ② 一个备库只能有一个主库 ③ 每个备库 Server ID全局唯一 ④ log_slave_updates 有薪火相传之效用 下面简单谈谈几种复制的拓扑设计、至于他们的优缺点以及适用场景留待后续慢慢献上
2013-06-24 20:13:16 4032
原创 Oracle SQL引擎体系结构图
当一条SQL提交到Oracle后、SQL引擎会分三个步骤对其处理和执行: ① Parse(解析) ② Execute(执行) ③ Fetch(获取) 这三个步骤分别由SQL引擎的不同组件来完成、下面偶大概的绘出这张体系结构图: 记住这张图、对以后的优化或许会起到事半功倍的效用 =_=By David Lin2013-06-24G
2013-06-24 15:05:45 3709
原创 openoffice + pdf2swf 同时可运行的方法
由于项目需要我在服务器上安装 openoffice + pdf2swf、装好了 OOo并启动、装好了 pdf2swf、可是启动: 于是、我就这么搞: 结果、你猜怎么着?打开openoffice以及其他的需要X11 支持的程序全部失效、一时心里拔凉拔凉的 刚开始还以为是X11 出状况了、费了好大劲重装了X11 、可重装完、依然按上述方法
2013-06-23 20:17:37 2585 2
原创 记录一次惨痛的升级glibc 教训
距离这事有过一段时间了、现下可回忆的东西也不多、那有多少算多少吧 我记得我升级glibc的初衷是因为安装3.x版本的openoffice 需要glibc-2.7 先用一副图片简介一下什么是glibc: 我的系统原本是glibc-2.5、源码升级到glibc-2.7、升级是成功了、可是依然:[root@odd ~]# ls -l /lib/libc.so.*lrw
2013-06-23 19:16:57 9003 2
原创 MySQL HINT:Straight_JOIN
来自生产环境的朋友、可能都会碰到: 原本运行良好的查询语句,过了一段时间后,可能会突然变得很糟糕 一个很大可能的原因就是数据分布情况发生了变化 从而导致MySQL优化器对驱动表的选择发生了变化,进而出现索引失效的情况 所以、闲着蛋疼喝咖啡的时候、应该多收集两下表的统计信息 这个时候、Straight_JOIN 闪亮登场
2013-06-23 11:19:14 2767
原创 DBA 应该要注意Linux 环境下的一些操作
DBA 对OS的依赖、一丁点儿也不亚于DB、对于Oracle DBA、尤为突出 DB和OS的感情也与日俱增、耦合度高的让人一度以为这两要劳燕双飞了 例如、Oracle里面、 而且、故障诊断以及性能调优时、OS层的APP可能直接拖垮DB、比如: 好吧、我承认、扯这些无非就是想强调OS对DB、那剪不断、理还乱的感情嘛、、 ⑴ 慎用 mv
2013-06-23 01:49:08 2760 5
原创 Oracle 开发人员分析SQL 执行计划的关注点
繁琐复杂的执行计划、可能迷了开发人员的眼、导致一条性感又傻X的SQL 在服务器上跑得特欢乐 有介于此、重点抓住几个部分、至于其他的嘛、当然是、非礼勿视咯、、 ㈠ 返回行的数量 Oracle优化器是基于成本的、评估成本的一个主要指标便是查询多少行 一般的、返回值在100W或者大表返回值超过总记录50%、可优化的空间
2013-06-21 00:57:29 3042 2
原创 Oracle 产生序列的 6 种方法
方法一:sys@ORCL> select level from dual connect by level<=5; LEVEL---------- 1 2 3 4 5方法二:sys@ORCL> select rownum from dba_objects where rownum<
2013-06-19 23:51:46 2945 2
原创 lsof 应用实例分享以及Oracle 数据文件删除恢复测试
㈠ lsof 应用实例 ① 查找指定端口被哪个程序占用:[root@temp ~]# lsof -i :80COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEhttpd 10278 root 3u IPv6 37812 0t0 TCP *:http (LIST
2013-06-19 21:31:33 3253
原创 MySQL 硬件加速:Flash 存储技术
对数据库瓶颈贡献最大的、恐怕I/O是当仁不让了、 市面上、网络上一抓一大把的调优理论、都是对I/O下手 然、摩尔定律称:硬件运算速度每18个月翻一倍、I/O已经不再是数据库瓶颈的头号杀手 那些墨守成规的DBA们、是时候转变思路啦、醒醒哈、别睡着了 大家伙先看一下MySQL I/O 分析 ① InnoDB redo&binlog
2013-06-15 19:47:29 2312
原创 Oracle DBA 每天、每周、每月应该做的工作
㈠ 每天的工作 ① 检查 alert.log ② 环境确认 ● 数据库实例是否正常工作 ▼ ps –ef|grep ora_ ▼ select status from v$instance ●
2013-06-14 21:12:14 3903 17
原创 Statspack 报告的分析经验
不需要通读、有重点地看、看以下 10 点: ① Load Profile ② Instance Efficiency Percentages ③ Top 5 Wait Events ④ SQL ordered by Gets ⑤ SQL ordered by Reads ⑥ Tablespace IO Stats ⑦ Enqueue
2013-06-14 20:25:08 1891
原创 InnoDB 主键的选择:自增ID & 业务ID
这里给个简单的经验、但不总是有效 -_-# ① 写操作较多:自增ID ② 读操作较多:业务IDBy David Lin2013-06-14Good Luck
2013-06-14 20:04:54 2247
原创 MySQL DBA 刚入职时如何快速拥抱新的环境
方法何其多、这里介绍的是懒人做法、也就是、借助工具 但是、生产环境是不能随便安装程序的、肿么办? 没关系、我们伟大的percona 已经为我们考虑周详鸟 这里、我们要借助三个工具: ① pt-summary:绿色纯天然、免安装、下载即用、收集MySQL Server所在OS的基本信息 ② pt-mysql-summary:本地安装、然后远程收集MySQL Serve
2013-06-13 23:32:39 3164
原创 大数定律和MySQL 静态分片
sharding 策略大抵有二:静态和动态、静态分片优点:简单、开发成本低、维护花费小 常见的静态分片方式有哈希函数和取模、但这样就暴露了一个缺点(PS:还有很多缺点呢): 这个缺点是这样的: 采用静态分片、我们就无法自定义数据放到哪个分片、如果、存在一些数据比其他数据活跃 而且、很不凑巧、这些激进的数据都被分配到同一个分片、这时、头就大了 我们无
2013-06-13 20:03:30 2250
原创 深入理解Oracle索引(23):6 种常见不走索引的原因分析
有时候、挺郁闷的、丫的、咋回事啊、就不走索引、 如果、你发现不走索引、却莫冒失强加自己的意志、 总得给出理由吧、做个测试先、证实/伪走索引切实明智 否则、可能会返回错误的结果、也可能导致性能下降 下面就常见不走索引的 6 种原因简要分析一下、做到心里有底 ㈠ 违背复合索引"前缀性"原理
2013-06-11 22:57:30 5585
原创 MySQL InnoDB 锁机制详解
为什么我们需要锁?先别急着回答、回想一下我们在逛淘宝下订单时的一个场景: InnoDB 是行锁、不存在锁升级问题、也就是、锁住 1 行和锁住 1 千万行的开销是一样 但是、InnoDB 行锁仍然存在一般的锁在高并发下所特有的"劣根性": ● 丢失更新:A的修改被B覆盖、谓之"前浪总被后浪盖" ● 脏读:不同事务间、读到未提交的数据 ● 不可重复读:同一
2013-06-11 20:44:05 13763
原创 DNS 解析出错导致 MySQL 无法连接
用 Navicat 连接: 错误日志: DNS 设置问题、如果授权的时候、只采用 IP 验证 就没有这个错误 skip-name-resolve 禁用 DNS 解析、grants table 只能使用 IP 或者 % 、否则、会告警: [Warning]
2013-06-11 14:59:24 3194
mysql+heartbeat+drbd软件集合
2013-05-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人