1.提高服务器配置2.用多线程处理(程序设计方面)3.改三层结构,用中间层先分析过滤数据,减轻服务器处理负担及网络传输负担4.批量发送处理语句,不要逐条发送 例如,多条insert语句可以组合成下面的形式发送: insert 表 select 值1 union all select 值2 .... union all select 值n5.考虑使用服务器集群,平衡负载
insert 表 select 值1 union all select 值2 .... union all select 值n 的方法好象不太好,因为字符串的连接也是比较耗时的,尤其是长字符串的连接,我就遇见过缓冲表的方法好象比较可行,不过不知道具体如何做,会的人能不能具体说一下关注
例如,多条insert语句可以组合成下面的形式发送:
insert 表 select 值1
union all select 值2
....
union all select 值n5.考虑使用服务器集群,平衡负载
union all select 值2
....
union all select 值n
的方法好象不太好,因为字符串的连接也是比较耗时的,尤其是长字符串的连接,我就遇见过缓冲表的方法好象比较可行,不过不知道具体如何做,会的人能不能具体说一下关注
SQL中的每条处理语句都是一个事务,换句话说,你执行100次插入的话,就会进行100次事务处理,而将SQL语句组合成一条的话,就会减少事务处理而在前台组合SQL语句的话,因为前台不存在事务的问题,所以速度当然比数据库中快
而拼接字符,也不是越大越好,就像你说的,拼接字符串如果长的话,时间花的肯定多.
其次
频繁地向数据库发出插入指令,这样肯定会加重服务器的处理负担,造成服务器的I/O拥堵(包括网络的堵塞)
而如果是花大量时间在程序中去接字符串的话,则千万程序的负担,这时服务器是闲置的.
所以这是一个负载平衡的问题,就是说要考虑程序中拼多长的字符串,然后就发送到服务器
union all select 值2
....
union all select 值n