0
点赞
收藏
分享

微信扫一扫

mysql手工注入语句


mysql能不能做延时同步,或者请教一下问题的解决方案。

在爬虫未启动时Mysql基本能满足普通的读写功能,一但启动了爬虫,将大量写入数据,服务器的I/O占用情况达到85%-95%左右。大大的影响了Mysql的查询性能。现将Mysql和Web服务器还有爬虫分开。A,B服务器分别为Mysql的Master和Slave端,使用Mysql-Proxy进行读写分离,Slave端同步Master的数据。爬虫在C服务器上,在启动时将数据直接写入Master端,然后同步至Slave端。这样子分开后,启动爬虫时Slave端还是不乐观,也影响了Slave的查询效率。爬虫是二个小时启动一次,它只写入Master的两个表的数据。请教一下大家怎么处理这样的情况?

本回答由提问者推荐

mysql能不能做延时同步,或者请教一下问题的解决方案。

在爬虫未启动时Mysql基本能满足普通的读写功能,一但启动了爬虫,将大量写入数据,服务器的I/O占用情况达到85%-95%左右。大大的影响了Mysql的查询性能。现将Mysql和Web服务器还有爬虫分开。A,B服务器分别为Mysql的Master和Slave端,使用Mysql-Proxy进行读写分离,Slave端同步Master的数据。爬虫在C服务器上,在启动时将数据直接写入Master端,然后同步至Slave端。这样子分开后,启动爬虫时Slave端还是不乐观,也影响了Slave的查询效率。爬虫是二个小时启动一次,它只写入Master的两个表的数据。请教一下大家怎么处理这样的情况?

本回答由提问者推荐

mysql 怎么实现 waitfor delay 功能

sleep(5)  #-- 等待5秒

select * from account where userid=1 for update; 

commit;没看懂什么意思?

mysql 事务写入速度很慢,有什么办法能加速?

mysql5的手册中提到,插入一条记录,所需的时间比例大概是:

连接:(3)

发送查询给服务器:(2)

分析查询:(2)

插入记录:(1x记录大小)

插入索引:(1x索引)

关闭:(1)

并且表的大小以logN(B树)的速度减慢索引的插入,因此提高插入速度的方法大概有以下7种:

一个insert语句包含多个value值;

使用insert delayed方法;

使用insert into ...values(select ...from),即select的同时执行insert;

使用load data infile;

先禁掉索引,插入后再创建索引;

写锁表,插入,解锁。原因是索引缓存区仅在所有insert语句完成后才刷新到磁盘上一次;

增加key_buffer_size值来扩大键高速缓冲区。这个要看你用什么“存储引擎”

如果是不支持事务的引擎,如myisam,则是否commit都没有效的。

如果是支持事务的引擎,如innodb,则有系统参数设置是否自动commit,查看参数如下:

mysql> show variables like '%autocommit%';

+---------------+-------+

| variable_name | value |

+---------------+-------+

| autocommit| on|

+---------------+-------+

1 row in set (0.00 sec)

mysql>

显示结果为on表示事务自动提交,也即不用手工去commit。

当然,你可以设置其为off,然后自己手工去commit。

举报

相关推荐

0 条评论