MYSQL 如何多mysql取第一条数据据快速插入?

mysql数据库插入原来这么快 - hanyh - ITeye技术网站
博客分类:
看见在插入数据量近6000W的时候,还能达到1200条/秒左右
10W条插入所耗时间,插入条数记数(原来表中有1000W记录)
12.,100000
12.,200000
12.,300000
12.,500000
12.,700000
12.,800000
14.,1000000
14.,1100000
12.,1200000
12.,1300000
12.,1400000
12.,1500000
12.,1600000
13.,1700000
13.,1800000
13.,1900000
14.,2000000
14.,2100000
13.,2300000
13.,2400000
13.,2700000
14.,2800000
14.,2900000
14.,3100000
13.,3200000
14.,3300000
14.,3400000
14.,3500000
14.,3600000
14.,3700000
14.,3800000
14.,3900000
14.,4000000
15.,4100000
14.,4200000
14.,4300000
15.,4400000
15.,4500000
15.,4600000
15.,4700000
15.,4800000
15.,4900000
15.,5000000
16.,5100000
16.,5200000
16.,5300000
16.,5400000
16.,5500000
16.,5600000
16.,5700000
16.,5900000
16.,6000000
17.,6100000
17.,6300000
17.,6400000
17.,6500000
17.,6700000
17.,6800000
18.,6900000
18.,7000000
18.,7200000
18.,7300000
18.,7400000
19.,7500000
19.,7600000
19.,7700000
19.,7800000
19.,7900000
19.,8000000
19.,8100000
19.,8200000
20.,8300000
20.,8500000
20.,8600000
20.,8700000
20.,8800000
20.,8900000
20.,9000000
20.,9100000
20.,9200000
21.,9300000
20.,9400000
21.,9500000
21.,9600000
21.,9700000
21.,9800000
21.,9900000
插入的文章见:
/admin/blogs/434077
1,机器为4核16G内存,脚本和数据库在同一机器上跑,插入的速度还能快更多。
2,mysql为5.1.30
回复要先做题,太麻烦了,直接改原贴。
对1楼的回复,需要说明几个问题
1,oracle版本和基本配置(oracle所用的内存,缓冲是多大?)
2,所在的硬件环境
---------------
3,我的相关文章注明了,插入脚本和数据库是在同一个机器上,为了模拟真实的负载,100个并发连接全是单独直接连接数据库,并没有把全部硬件资源用在数据库上,mysqld的配置也有限
4,即使oracle在大数据量快一点也是正常的,但是这足够证明mysql不慢!!!单表这个插入速度的量对绝大部分应用足够了。
论坛回复 /
(2 / 1610)
浏览: 101767 次
来自: 北京
必须登录评论下,谢谢。
命运使然.前生来世都注定了的.
出现这样的错误ViewDoesNotExist at /con ...
我的项目比较小,就直接写在views.py里面了。你出现的是什 ...
请问JsCalendarWidget应该放在哪个位置,我的是放 ...mysql大批量数据插入 - 下载频道 - CSDN.NET
&&&&mysql大批量数据插入
&mysql大批量数据插入
需求:需要频繁的插入数据到MySQL数据库中,设计目标要求能支持平均每秒插入1000条数据以上
方法:mysql批量数据插入方法及性能参考
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
Q.为什么我点的下载下不了,但积分却被扣了
A. 由于下载人数众多,下载服务器做了并发的限制。若发现下载不了,请稍后再试,多次下载是不会重复扣分的。
Q.我的积分不多了,如何获取积分?
A. 传优质资源可以获取积分,详细见。选择完成有奖的任务,可以获取积分。选择购买VIP会员服务,无需积分下载资源。评价资源返积分:第一次绑定手机,将获50下载积分及100论坛可用分。论坛可用分兑换下载积分。
下载资源意味着您已经同意遵守以下协议
资源的所有权益归上传用户所有
未经权益所有人同意,不得将资源中的内容挪作商业或盈利用途
CSDN下载频道仅提供交流平台,并不能对任何下载资源负责
下载资源中如有侵权或不适当内容,
本站不保证本站提供的资源的准确性,安全性和完整性,同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
数据库下载排行
你下载资源过于频繁,请输入验证码
如何快速获得积分?
你已经下载过该资源,再次下载不需要扣除积分
mysql大批量数据插入
所需积分:1
剩余积分:
VIP会员,免积分下载
会员到期时间:日
剩余下载次数:1000April 29, 2012
Filed under:
admin @ 9:50 am
做的一个项目,在haoop上计算好业务数据,然后回流到mysql里,每天需要回流的数据量大概有2亿行左右。这2亿行数据在mysql端,分属于9个表,这里面最大的一个表,每天回流1亿数据,这个表在mysql里被分成了1024个分表,也就是基本上每个分表每天要回流10万行数据。
由于牵扯到具体业务,为了避免不必要的纠纷,就不细讲这个表的schema,笼统来讲,这个表采用innodb引擎,使用自增主键,同时使用3个列来做唯一索引(2个列是long,一个列是datetime类型)。整个表60多个列,除了一个列是datetime类型外,其他列都是int,long类型。
测试分成3种情况,一种是在haoop上,不对要插入的数据进行hash和排序(hash是按照一个列进行hash,该列既是构成唯一索引的列,又是构成用来进行分库分表的列),一种是在haoop上,对要插入的数据进行hash以及排序,第三种是在第二种的基础上,将binlog进行关闭。
1.上图纵坐标是每秒插入的条数,横坐标是当数据库累积插入第多少天业务数据时的速度(横坐标应该除以10,即最多不是累积到140,而是14)。
2.由于测试数据库的硬盘容量的关系,最多只能插入14天数据。
3.从上图结果来看,是否去掉binlog对插入速度影响不大(原因应该是我们已经设置了innodb_flush_log_at_trx_commit = 2)。
4.对组成索引的字段进行排序,则可以大幅提高插入速度。如果直接将hadoop产生的数据不做处理,进行插入,当插入第5天
数据时,插入速度已经下降到2000多行/S。
原因分析:
被插入的表,有一个唯一索引,构成的列为seller_id,biz_date,area(卖家ID,日期,其实是个datetime类型,地区),一个卖家当天可能有1000条数据需要进行插入,如果不对卖家ID进行hash和排序,那么,这些这1000条数据可能分散在多个云梯文件里,同步某个文件时,可能插入5条数据进去,这个时候为了维护索引,需要将该索引对应的页从硬盘读入内存,插入5条数据后,由于后续数据都不和该卖家相关,此索引页可能被唤出,下一次再碰到5条数据时,可能又被唤入,以此类推,该索引页可能需要被唤入换出20次;而如果按照卖家ID索引和排序,一个卖家的数据都集中在一起,那么这1000条数据的插入,只需要唤入唤出索引页1次。所以才会造成插入速度有如此显著的差异。同时,如果不对seller_id进行排序,插入的seller_id是无序的,这样会造成B tree的page进行split(比如某个page已经存放了11,13,15这3个seller_id,结果后来突然插入了14,那么如果一个page只能存3个seller_id的话,那么这种情况下就会进行split。mysql中,除了hash索引,全文索引外,其他索引都是通过B tree实现的),从而产生随机IO.
同时,无论是否hash源数据,插入速度都在下降,这是由于维护索引造成的,当索引大了后,为了维护索引,需要从硬盘上读取索引所在页进入内存,会导致随机读写,其索引越大,随机读写越多,从而造成插入速度一直呈下降趋势。
现在各大互联网公司,应该都有业务场景涉及到离线计算大量日志或是业务数据,然后需要同步到一个存储里,再对外提供实时读服务。如果这个存储很不幸是mysql,且引擎是innodb的话,那么很不幸,索引的存在会使得插入速度随着数据的累积而下降。那么为了让这个下降速度慢一些,在离线计算时,让产生的数据就按照索引字段排好序,有利于大幅提高插入速度。
附测试环境:
“方案1主备同步”的数据库环境已经搭建好
my031093.sqa.cm4(主)
db031175.sqa.cm4(备)
10.232.31.93
10.232.31.167
8| Intel(R) Xeon(R) CPU E5420 @ 2.50GHz
8| Intel(R) Xeon(R) CPU E5420 @ 2.50GHz
SAS 899.6 GB
SAS 898.3 GB
MySQL为5.1.48版本,innodb的相关配置是:
default-storage-engine = INNODB
innodb_flush_method = O_DIRECT
innodb_file_per_table = 1
innodb_open_files=60000
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 100
innodb_additional_mem_pool_size = 20M
innodb_log_buffer_size= 200M
innodb_log_file_size = 100M
innodb_log_files_in_group = 4
innodb_file_io_threads = 4
innodb_thread_concurrency = 64
innodb_max_dirty_pages_pct = 50
innodb_data_file_path = ibdata1:5G;ibdata2:5G:autoextend
innodb_buffer_pool_size=11G
No comments yet.
Powered by相关文章推荐:
mysql 对于百万条数据的更新
向一个千万数量级别的表中导入100万条数据,这一百万中有些数据已经在存在数据库中了,对存在的数据进行更新(根据100万中的值更新已存在的),有什么方法可以快速插入数据库么?用duplicate key update 方式太慢,求最快导入方法,谢谢!
阅读(8320) 回复(1)
其他文章推荐
ITPUB官方微博:
在mysql 5的数据库中如何向某个表中自动插入上百万条测试数据,通过什么方式可以实现?
阅读(3126) 回复(6)
大家公司mysql库中单表数据记录条数最多少条呢?如果是分区表的话,所有分区表的综合条数为单表条数。请大家支持一下,另外当你们到达了最高记录后,针对于接下来的不断增长的业务需求你们是怎么考虑大表的扩展呢?
阅读(26358) 回复(61)
我有几个关键的表,数据量在100多万条,列不多,需要大量的查询,但是很少更新,经验的高手建议一下,用那个数据库比较快?大概可以快多少倍?不要要求稳定,不要求复杂操作,就要一个字:快!
谢谢了!!!
谢谢,暂时使用ms sql, 大家过来测试一下速度。 http://www.qiuhao.net
阅读(2452) 回复(8)
T1 /*varchar*/
T2 /*varchar*/
T3 /*varchar*/
D1 /*date*/
S1 /*numberic*/
要按T1, T2, T3 的分类以及 D1 日期 统计每天的销售额S1.
服务器4核,8G内存, 记录有20m条,请问咋写sql统计得快点?
阅读(237) 回复(2)
本帖最后由 runeveryday123 于
09:02 编辑
表名:products
里面有很多行数据。含有字段:products_model
products_priceproducts_model唯一,数据库里存的products_price 价格全为0.0000。现在想更新它。
准备数据在excel中: 形于:
products_model
products_price[quote]LB2100
数据库中结构形于:
阅读(2804) 回复(6)
1、 使用insert语句向表插入一条新记录,语法是:insert into 表名 [(字段列表)] values(值列表)。
2、 使用set 语句更新操作与字符集,例如set
character_set_client =latin1\gbk\utf8;
3、 使用delete语句删除表记录,例如 delete from 表名 where 条件表达式;
4、 使用insert语句可以一次性地向表中
阅读(180) 回复(0)
今天在本地装了一个mysql的学习环境,简单的熟悉了一下。准备开始好好学习mysql了。
学习编程语言我都是从数据类型入手。每种编程语言的数据类型都有自己的特点,有点简单,有的种类丰富。
总体感觉而言,mysql的数据类型要比oracle丰富的多。用惯了oracle中的数据类型,一般number,varchar2,date就足够了,最常用的这3个数据类型在mysql就有
阅读(0) 回复(0)
阅读(90) 回复(0)
数据库提供了多种字符集,如Latin1、utf8、gdk、big5等。字符集指的是在同一个字符集内字符之间的比较规则。只有确定字符序后,才能在一个字符集上定义什么是等价的字符,以及字符之间的大小关系。一个字符集可以包含多种字符序,每个字符集有个默认的字符序(default collation),每个字符唯一对应一种字符集。mysql字符命名规则是:以字
阅读(150) 回复(0)
数值类型:
tinyint 极小的整型
占用一个字节
Smallint小型
阅读(330) 回复(0)
盛拓传媒:
北京皓辰网域网络信息技术有限公司. 版权所有
北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证:编号(京)字第1149号
ITPUB推荐文章解答你所有技术难题

我要回帖

更多关于 mysql取前几条数据 的文章

 

随机推荐