我数据库有两个表,一个是主表,一个相当于子表,是多对1的关系。主表中的数据是不重复的,子表中的数据每天不重复(每天大概插入数据55万条)。我原来的思路是判断主表中的数据是否存在,如果存在就把id拿出来跟子表的关联。如果不存在,就主表和子表insert数据。但是主表的数据已经320万条了,一次性拿到内存中,内存会溢出的。另外一种就是每次循环去读数据库,发现每天要取查55万次数据库,这样会对数据库造成很大的压力,速度就更不用说。存储过程是可以用,但是也是要判断数据是否存在的。就不知道存储过程能好多少,或者大家有什么好的建议,谢谢大家。
320万的数据并不多,判断一条数据效率并不低啊,要我的解决方法就是把主表主键和判断条件条件存到内存里面,内存也使用不了多少,实在不行就分段分服务器存,然后加个锁!
550000 /24 /3600 = 6 次/秒,我就笑笑不说话。
爱编程的大叔,你这是什么意思嘛?
320万条记录中判断某个数据是否存在,能有多慢?有啥压力?
你想的问题的方法很奇怪.并且你的问题也没讲清楚.
但是就你的题目来说回答是:merge into 命令
加个unique的索引直接插啊,插进去了你好我也好,插不进去报错就拉倒咯。
别把db想的太脆弱了,我这边有个服务下面挂的mysql,正常压力下查询qps都在10k/s,最高时候上到过30k/s,一个master支撑所有query,slave仅作为backup,不提供查询。