Welcome 微信登录

首页 / 数据库 / MySQL

使用expect运行动态脚本

使用expect运行动态脚本

在平时的工作中,如果接手的环境多了之后,每天去尝试连接服务器,都是例行的步骤,时间长了之后就会感觉这些工作都是繁琐重复的工作,其实我们可以尝试让工作更简化,更高效一些。比如我们设定下面的场景,我们存在服务器A,这个服务器可以连接到网络环境中的其它机器,我们假定这个机器就是中控机。通过中控机连接到各个服务器环境,有下面几个步骤,1)连接到某一台服务器B2)查看系统的版本信息3)查看系统的内核信息4)切换到Oracle用户下5)查看服务器所使用的Oracle版...
MySQL普通表转换为分区表(MySQL-5.6.25,MySQL-5.7.7-rc)

MySQL普通表转换为分区表(MySQL-5.6.25,MySQL-5.7.7-rc)

考虑到设计人员没有规划好表的容量,某些业务表体积过大以后,需要将以前的表转换为分区表的需求,简单记录一下MySQL的分区表转换功能,测试环境:MySQL-5.6.25和MySQL-5.7.7-rc本着学习的原则,先把百度方法中的,中间表->锁表->导数据->rename,放在一边,先试着能否直接用alter来转换表结构,类似于Oracle的直接转换先在MySQL-5.7.7-rc环境下建表插入数据试一下如下语句:ALTER TABLE s...
MySQL转换分区表&索引重用

MySQL转换分区表&索引重用

背景:生产环境下,大表数据量剧增,影响到了SQL的执行效率;业务越来越多,陆陆续续增加的索引并不是很合理,为了提高索引的使用率,需要把不必要的索引合并起来,减少索引的数量,提高索引的使用率方法:大表水平切分-->分区表转换;综合利用联合索引的特点,去掉一些多余的单列索引和一些重复的联合索引这篇博文的主要内容:转换分区表的方法:直接alter即可(http://www.linuxidc.com/Linux/2015-08/121268.htm;分区表效...
Oracle组合索引与回表

Oracle组合索引与回表

回表简单来说就是数据库根据索引找到了指定的记录所在行后,还需要根据rowid再次到数据块里取数据的操作。"回表"一般就是指执行计划里显示的"TABLE ACCESS BY INDEX ROWID"。例如select的字段里有索引不包含的列根据tom的Oracle编程艺术,建表big_table,300W数据。建索引:create index idx_big_table_created on big_table(created); 下面语句不会回表,因为只查...
Redis高级特性的配置及使用

Redis高级特性的配置及使用

【Redis安全性】一 . 默认我们进入Redis客户端是不需要密码的,但是在使用任何命令前保证已授权,这在一个你不信任其它人的环境里可能有用。 1.按照如下方式可设置密码: ① 修改配置文件(默认为/usr/local/etc/redis.conf),找到requirepass foobared,默认已注释掉;将密码设为123456只需要这样,requirepass 123456,然后重启服务。(杀掉主进程:kill -9 进程号,启动:/usr/l...
MySQL分表分区

MySQL分表分区

垂直分表垂直分表就是一个包含有很多列的表拆分成多个表,比如表A包含20个字段,现在拆分成表A1和A2,两个表各十个字段(具体如何拆根据业务来选择)。优势:在高并发的情境下,可以减少表锁和行锁的次数。劣势:在数据记录非常大的情况下,读写速度还是会遇到瓶颈。水平分表假如某个网站,它的数据库的某个表已经达到了上亿条记录,那么此时如果通过select去查询,在没有索引的情况下,他的查询会非常慢,那么就可以通过hash算法将这个表分成10个子表(此时每个表的 的数据...
Oracle 11g维护分区(九)——Truncatinging Partitions

Oracle 11g维护分区(九)——Truncatinging Partitions

使用ALTER TABLE ... TRUNCATE PARTITION语句从一个表分区中删除所有数据。截断分区和删除一个分区类似,所不同的是该分区的数据被清空,而不是物理删除。 你不能截断一个索引分区。但是,如果该表定义有本地索引,ALTER TABLE ... TRUNCATE PARTITION语句将会截断每个本地索引中相匹配的分区。除非你指定了UPDATE INDEXES,任何全局索引会被标识为UNUSABLE,必须重建。(对于索引组织表你不能使...
Oracle 11g维护分区(八)——Renaming Partitions

Oracle 11g维护分区(八)——Renaming Partitions

我们可以重命名表和索引的分区和子分区。重命名一个分区的一个原因可能是分配一个有意义的名字,而不是其他维护操作中分配给分区的默认系统名称。所有的分区方法都支持使用FOR(值)来识别一个分区。你可以使用该方法重命名系统自动生成的分区名称,代之以一个更有意义的名字。这一点再分区或者复合分区表中特别有用。你可以独立地重命名引用分区表中主表和子表的分区和子分区。主表的重命名操作不会级联到相关子表。重命名表分区重命名一个范围、哈希或者列表分区,使用ALTER TABL...
MongoDB复制集数据库拆分和版本升级实战

MongoDB复制集数据库拆分和版本升级实战

问题描述复制集rs_1上承载了所有的数据库业务,而加内存已经无法满足应用程序压力。解决方案考虑拆分复制集rs_1的部分数据库到rs_2,并同时升级数据库版本到2.6。架构图准备评估升级可能性1. 连接2.6 mongo shell到2.4 复制集辅助成员,在admin库执行db.upgradeCheckAllDBs()。2. 评估升级到2.6的应用程序兼容性问题,参考:http://docs.mongodb.org/manual/release-notes...
MongoDB升级用户授权数据到2.6格式

MongoDB升级用户授权数据到2.6格式

MongoDB 2.6包含重要的授权模式修改,它会改变MongoDB存储用户凭据的方式。因此,除了升级MongoDB进程,如果你的应用程序使用了验证和授权,在升级所有的MongoDB进程到2.6之后,你必需也升级授权模式。考量完成所有其他升级需求在升级授权模式前,你必须首先升级MongoDB二进制文件到2.6。对于分片集群,确保所有的集群组件是2.6。如果有用户在任意数据库,在升级MongoDB二进制文件前,确保至少有一个用户在admin数据库。时机因为在...
MySQL5.6 新特性之GTID

MySQL5.6 新特性之GTID

背景: MySQL5.6在5.5的基础上增加了一些改进,本文章先对其中一个一个比较大的改进"GTID"进行说明。概念: GTID即全局事务ID(global transaction identifier),GTID实际上是由UUID+TID组成的。其中UUID是一个MySQL实例的唯一标识。TID代表了该实例上已经提交的事务数量,并且随着事务提交单调递增。下面是一个GTID的具体形式:4e659069-3cd8-11e5-9a49-001c4270...
MySQL客户端及服务器端命令总结

MySQL客户端及服务器端命令总结

MySQL在配置文件中有[client]和[mysqld]部分,并且MySQL有属于自己的客户端命令和服务器端命令,下面简单的介绍下。①如果管理员为MySQL登录的用户设置了登录的密码但是不想每次登录的时候都要输入一遍的时候,可以在登录用户的家目录底下建立一个隐藏的文件,文件的名字是.my.cnf,下面以root用户为例子:vi /root/./my.cnf[client]user = rootpassword = RedHathost = localho...
<< 871 872 873 874 875 876 877 878 879 880 >>