求助,高难度问题,高并发的SQL插入.

zhkzhk 2009-08-14 10:33:52
首先感谢大家能光临本帖.

问题如下:

我要设计一个API 用PHP写的.

这个API 被调用后,要执行一系列的SQL插入,数据库是MySQL.

API调用一次最少要执行3条SQL插入语句,多则会超过500条.

3条插入的时候是较少的,据数据分析,通常情况下会在100-250条之间.

插入的数据是较少的. 一共4个字段.内容都是在9个字符以内.

但API的调用是非常的频繁的,而且并发的调用也是非常的高的.

调用情况基本为 每1-10秒钟,会有 5-10万的并发调用.

那么列个折中值.

每5秒钟 将会有 8万并发调用*150条SQL插入 = 1200万条SQL插入.
---------------------------------------------------------------

请问大家对次有何见解.
API如何设计,数据库如何设计,服务器方面如何架构?
难道我了.第一次接接收这样的任务.
...全文
138 点赞 收藏 15
写回复
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
huishiyizu 2009-08-22
路过学习
回复
tony-杨 2009-08-16
最原始最简单的办法 每次插入都不要只插入单条 你合并到一起一次性插入试试?
Insert into xxx(field1,field2[,field3.....]) values
(value1,value2[,value3.....]),
(value1,value2[,value3.....]),
(value1,value2[,value3.....])[,(value1,value2[,value3.....]).....]
回复
zhkzhk 2009-08-16
1200万确是有点高哈.

也别想着都是1200万.

1200万只是算了个则中值,算是高峰.

为了提高数据库的能力,做了读写分离了.

由于数据的插入量在一个时间区间里面大小不一.

有朋友叫我做延迟入库.把插入量均匀的分配到每秒上去.

不知道延迟入库效果怎么样.
回复
zhkzhk 2009-08-16
[Quote=引用 13 楼 gzty 的回复:]
最原始最简单的办法    每次插入都不要只插入单条    你合并到一起一次性插入试试?
Insert into xxx(field1,field2[,field3.....]) values
(value1,value2[,value3.....]),
(value1,value2[,value3.....]),
(value1,value2[,value3.....])[,(value1,value2[,value3.....]).....]
[/Quote]

不能这么做的...

数据库是分了表的...显示分表...table_1,table_2,table_3.....table_8

入哪个表 是根据相应的id 取余 来的.

所以SQL都还的临时组合.
回复
phpboy 2009-08-15
1200万,有点庞大!

分库 效果应该不会很明显吧!
回复
w198909253132 2009-08-15
wa
回复
tfxg 2009-08-15
有點高
回复
ruanchao 2009-08-15
这位仁兄,最近在致力于这方面的研究吗?
回复
zhkzhk 2009-08-15
每5秒8W也很正常啊..

QQ空间 每秒钟的SQL插入不知道好多条.

绝对不会低于我的1200万条..

API目前是用 url 调用的,不用响应.

SQL插入执行成没成功,这个先不用管它.

数据现在还没分库的,只分了表,800张表.

我有考虑过分库分服务器.. 但不知道如何操作这玩意..

至于服务器 要多少台,,用啥服务器,我现在还不清楚.要跟老大商量下.

我记的有个啥好点的..一台百多万的.1200万的量是绝对负载的下来的.

但应该是买不起的...所以....

哎,这些都是第一次弄.

回复
babysc1 2009-08-15
飘过。。。有点高。
回复
总哈哈 2009-08-15
每5秒钟 将会有 8万, 兄弟,数据库顶的住吗?
回复
dzxccsu 2009-08-15
等待高人!
回复
总哈哈 2009-08-15
QQ不同,别人用了数据分片技术了。你直接用什么mysql什么的做这个事情,听起来有点恐怖,以前我们公司用Oracle我都觉得会有问题,当然现在离开了,也不知道到底有没有问题!
回复
joking520 2009-08-15
兄弟,太残忍了。
LZ应该去读一读集群服务器的相关知识。
QQ空间能够在一秒内处理几万条数据,那当然是集群技术了,否则,到目前为止,还没有任何一台配置,任何一个数据库能够在瞬间处理如此多的数据。
回复
woshiguozhongbin 2009-08-15
用or....数据库吧。。。
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告