深入理解Oracle索引(22):索引和NULL 协同合作互惠共赢
㈠ 合作的基础⑴ /* 全为 NULL 的列是无法存储到B*Tree里面的 */ hr@ORCL> create table t (x number,y number); hr@ORCL> create index idx_t on t(x,y); hr@ORCL> insert into t values(1,1); hr@ORCL> insert into t values(1,null); hr@ORCL> insert into t values(null,1); hr@ORCL> insert into t values(null,null); hr@ORCL> commit; hr@ORCL> exec dbms_stats.gather_table_stats(ownname=>USER,tabname=>\'T\'); hr@ORCL> exec dbms_stats.gather_i
从 MySQL 冷备说起
MySQL 冷备、也叫离线备份 是最简单: ● 备份简单:只要拷贝相关文件即可 ● 恢复简单:只需把拷贝的文件放在同一个目录即可 也是最安全: ● 获取数据一致性副本的方法中最优的一种 那么、该备份哪些文件呢?下面以InnoDB 为
深入理解Oracle索引(21):视图和小表是否应该加索引
㈠ 视图能使用索引吗 答案是不能、为什么呢? 我们先要知道什么是视图? 视图、本质上讲、就只是一条被存储的SQL语句而已 那有人就要问了、为什么物化视图可以哩? 这个.....这个、这根本就是两码事嘛、两个完全不同的概念&
深入理解Oracle索引(20):外键是否应该加索引
先表明我的立场、我是绝对支持外键一定要加索引! 虽然在高版本的Oracle里、对这个要求有所降低、但依然有如下原因: ① 死锁 外键未加索引是导致死锁的最主要原因、因为 无论更新父表主键、或者删除一个父表记录、都会在子表加一个表锁 &nb
深入理解Oracle索引(19):表被 delete 后、索引叶子块里 entry 条目的状态
先瞧一个大家习以为常的现象:hr@ORCL> drop table t purge; Table dropped. hr@ORCL> create table t (x number,y varchar2(30)); Table created. hr@ORCL> insert into t select rownum,rownum||\'a\' from dual connect by rownum<1000000; 999999 rows created. hr@ORCL> create index idx_t on t(y); Index created. hr@ORCL> commit; Commit complete. hr@ORCL> exec dbms_stats.gather_table_stats(ownname=>\'HR\',tabname=>\'T\',estimate_percent=>100,cas
深入理解Oracle索引(18):函数索引的陷阱以及如何避免索引被污染
㈠ 函数索引的陷阱 使用函数索引一定要注意在函数代码变更后重建函数索引、否则、Oracle将返回错误结果但不给提示 测试如下:hr@ORCL> drop table t purge; Table dropped. hr@ORCL> create table t (x number,y varchar2(30)); Table created. hr@ORCL> insert into t select rownum,rownum||\'a\' from dual connect by rownum<1000; 999
to_char 和 to_date 经验分享
㈠ 比较下面两种写法: to_char(start_time,\'yyyy-mm-dd hh24:mi:ss\')=\'2013-06-06 16:18:30\' 和 start_time=to_date(\'2013-06-06 16:18:30\',\'yyyy-mm-dd hh24:mi:ss\') 任何时候都推荐使用后者!! ㈡ 数字转为英文的简单实现sys@ORCL> select to_c
深入理解Oracle索引(17):Cost 值相同 CBO 对索引的选择
规则如下: 测试如下:hr@ORCL> drop table t purge; Table dropped. hr@ORCL> create table t as select * from dba_objects; Table created. hr@ORCL> alter table t add (object_id_1 number); Table altered. hr@ORCL> update t set object_id_1=object_id; 50363 rows updated. hr@ORCL> commit; Commit complete. hr@ORCL> create index idx_t_a on t(object_id);
高端洋气上档次的终端控--tmux
关于它的传说、那是来自遥远的 Google、新浪微博、知乎 编译出错、看这个链接基本全搞定:哪里出错点这里 英文不给力、看这个链接、立马上手:中文man--简要的 我的效果图:
深入理解Oracle索引(16):聚簇因子
它的定义: 根据索引的值指示表中行的有序程度、通知 CBO 关于表的行和索引的同步情况 ● 该值与块数相近、表示相同的数据存放得比较集中 ● 该值与行数相近、表示表中行的顺序与索引的顺序不同 &nbs
深入理解Oracle索引(15):日期转换函数的格式参数大小写规则对函数索引的影响
规则如下: 依据这个规则、只有 3 种输出:大写、小写、首字母大写 测试如下:sys@ORCL> select to_char(sysdate,\'Month\') from dual; TO_CHAR(SYSDATE,\'MONTH\') ------------------------------------ June sys@ORCL> select to_char(sysdate,\'MOnth\') from dual; TO_CHAR(SYSDATE,\'MONTH\') ------------------------
MySQL 数据类型的最优选择
慎重选择数据类型很重要、为啥哩?可以提高性能、原理如下: ● 存储(内存、磁盘)、从而节省I/O(检索相同数据情况下) ● 计算、进而减负CPU负载 数据类型总体可分三种:数字、字符和时期 ㈠ 数字 &nbs
MySQL 权限管理的注意事项
㈠ 认证和授权 认证:who am I ? 授权:what I can do ? 认证实际上就是一个验证凭证的过程、而进入MySQL 需要出示的凭证有:host、username、password 连接MySQL 常见有 2 种: ① TCP/IP 连接 加 -h 参数、通过TCP/IP 连接MySQL 实例、mysql.user 对来者
MySQL 磁盘复制技术--DRBD:优缺点比较、注意事项以及最佳实践
DRBD 是内核模块方式实现的块级别同步复制技术、这里的同步级别是可以调整的 因为DRBD 是利用网卡进行块复制、如果、这里用 Infiniband 进行传输、便可以有效处理高并发 这是种复制存储、说白点、更像是一台热备机器、与其说是存储的HA、倒不如说是保证数据安全 工业环境更多用在 NFS 服务器、并结合 Linux-HA 项目、如 Packmaker、Heartbeat 等
浅谈 Redis 与 MySQL 的耦合性以及利用管道完成 MySQL 到 Redis 的高效迁移
㈠ Redis 与 MySQL 的耦合性 在业务架构早期、我们便该"吃着碗里的看着锅里的"、切莫让MySQL 有梦、而Redis 无心 毕竟、有些关系型的结构不适合放到Redis跑、"男女搭配、干活不累"嘛、推荐让MySQL与Redis喜结连理 其次、这 2 人、一般是在不同场景做选择、而不会在性能上选择、 &
Redis 环境的安装与测试
Redis 是 key-value 的NOSQL、独爱那些小而热的数据、典型"萝莉控" 至于啥叫 key-value 呢?用RDBMS的观点、一言以辟之: 所谓 key:主键列 所谓 value:其他列 Redis 近几年很火、火到抬头不见、低头见 抬头望国外:著名成人网站 youporn 采用 100% Redis 每天 1亿 PV、解决了无数屌丝 YY 问题 &n
Linux 下 R 语言环境搭建、测试
㈠ 需求分析 ㈡ 作用 ● 统计分析 ● 数据挖掘 ㈢ 安装 下载R源码编译包 # tar -zxv -f R-2.15.1.tar.gz # cd R-2.15.1  
生产环境 MySQL Replication 的推荐配置
问:把大象关进冰箱分几步? 答:打开冰箱,关进大象,关上冰箱 三步走战略、哈哈、安全的配置复制也是一样的走三步 ㈠ 创建复制账号 主备:gant replication slave,replication client on *.* to \'cdio\'@\'192.168.47.%\' identified by \'2010cdio\' &n
生产环境 MySQL 表的维护:check、optimize和analyze
㈠ optimize optimize可以回收空间、减少碎片、提高I/O 目前支持的存储引擎有:InnoDB、MyASIM和ARCHIVE 如果是Replication环境、可加NO_WRITE_TO_BINLOG(或者LOCAL、意思完全相同)、比如: optimize local table table_name;
深入理解Oracle索引(14):Composite Index 两大原理解析
声明:虽然题目是Oracle、但同样适合MySQL InnoDB索引 在大多数情况下、复合索引比单字段索引好 很多系统就是靠新建一些合适的复合索引、使效率大幅度提高 复合索引比单字段索引复杂、有两个原则需把握:前缀性和可选性 但是、可叹的是、国内很多IT系统开发人员没有意识到应该优先设