如何实现mysql增量更

如何实现mysql增量更,第1张

Ø 首先,我们需要开启MySQL服务器的二进制日志功能,其实现方法有很多种,最常用的是在MySQL的配置文件的mysqld项中加入log-bin=[filepath]项;也可以使用mysqld –log-bin=[filepath]重新启动MySQL服务器。

Ø 其次,使用mysqldump对数据进行完全备份,它可以实现对数据据的联机,非阻塞的热备份,不会影响其他进程对数据库的读写 *** 作。(参考指令:mysqldump -uroot --password=123 --single-transaction --flush-logs --master-data=2 --all-databases --delete-master-logs >d:/mysql5.0/full_%date:~0,10%_1500_PM.sql)

Ø 第三,使用flush logs指令刷新创建新的二进制日志。可以通过mysqladmin flush logs或者flush logs语句实现。最方便有效的方法是将它做成批处理文件,然后让 *** 作系统定期执行。

Ø 使用mysql <*.sql进行完全备份的恢复。

1.优化数据结构,每张数据表字段4-5个,加上索引。还可以将不同的种类的数据存入不同的数据库。减少单个数据库的压力。

2.写入数据只是存的问题,问题在于读取数据会变慢。建议使用缓存memcache,redis在向你招收哦。将用户数据存入内存,再次读取避免从数据库查找。

3.分布式,搞集群,扩大配置。

一条新闻的相关信息,来源,作者,正文,这些基本不变咯,除了正文可能文字比较多,其他的你可以存进缓存,正文的话,你这里可以把前面200字作为正文缩略,存进缓存。

使用 select 语句即可。

关键在于如何设计数据库,

给个思路你参考下,数据库结构如下

create table test (

deltinyint(2),

deltime int(10) unsigned,

addtime int(10) unsigned,

edittime int(10) unsigned,

)

deltime记录删除时间,addtime记录增加时间,edittime记录更新时间,我这里使用int格式记录时间戳,当然你也可以使用datetime格式,那样语句更简单。

查询2012年7月1日的删除记录,其他依此类推

SELECT * FROM test WHERE deltime>=UNIX_TIMESTAMP('2012-7-1') AND deltime<UNIX_TIMESTAMP('2012-7-2')


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7451416.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存