MySQL online schema change

对于MYSQL来讲,小的表alter table很容易,但是一旦数据量变得庞大,此操作就会变成恶梦,尤其是线上业务又不能停。有时没办法只能等重构时加双写,然后业务慢慢转移到新表,这样会耗时很长,而且开发成本也高。有没有什么办法可以实现不改代码的双写呢?我想到了触发器。当然要有root权限才好操作,不过相信都能找到相关的人的哈。 基本流程是这样: 1.创建临时表,并和旧表结构一样,然后在新表上增加字段 2.创建触发器,使旧表的操作自动双写到新表上来 3.处理旧数据,分段同步,...

» 阅读全文

Tags: mysql

测试MySQL 实现随机查询的最优方案

Mysql自带的rand()在数据量少时还是比较方便的,当数据量一大效率问题就会凸显。 网上有一篇 MySQL rand函数实现随机数的方法 http://database.51cto.com/art/201010/229217.htm 文中介绍使用max(id) * rand()再取整来随机获取数据,这种方案在一定程度上缩短了搜索的范围,另外是顺序读取的,所以效率不错。 来看两个完整的例子 #例子1select * from pre_common_member where...

» 阅读全文

Tags: rand , mysql

将Excel文件数据导入MySql数据库

方案1: 通过EXCEL另存为 -》文本文件(制表符分割)(*.txt) 然后进入 mysql 命令行通过 load data local infile c:/namewd.txt into table excel character set utf8 fields terminated by \t; 导入数据库,注意上面的字符集换成你的,这里是为了防止load data local infile导入乱码 方案2: 通过ACCESS打开EXCEL文件另存为access文件格...

» 阅读全文

Tags: excel , mysql

mysql如何计算最近七天

从SQL里执行下面的查看 SELECT unix_timestamp(SUBDATE(now(), INTERVAL 7 DAY)); mysql 日期时间函数大全 http://www.cnblogs.com/zeroone/archive/2010/05/05/1727659.html

» 阅读全文

Tags: mysql

perl连接mysql数据库

perl连接mysql使用DBI如果没有安装使用时会报错如下 Cant locate DBI.pm in @INC 安装先下载需要的包 wget ftp://ftp.funet.fi/pub/CPAN/modules/by-module/DBI/DBI-1.616.tar.gz wget ftp://ftp.funet.fi/pub/CPAN/modules/by-module/DBD/DBD-mysql-4.020.tar.gz wget ftp://ftp.funet....

» 阅读全文

Tags: perl , mysql

mysql忽视大小写+插入的效率

(1) window开发linux部署遇到的数据库大小写问题 解决方案1:修改 mysql 配置文件让其对表名的操作忽略大小写 具体步骤:1,用root身份登录linux; 2,编辑etc/my.cnf 3, 找到[mysqld]的配置区,加上一条:lower_case_table_names=1 4, service mysql restart 重启mysql 效果 : 100%解决问题 (2) 忘记mysql超级用户root密码的处理 在linux中先停止数据库,然后用...

» 阅读全文

Tags: mysql

回顶部