假设是下面的情景中:
我需要插入五百万条数据到数据库中,但是这些数据中有些是有重复的,但是我不要重复的数据纪录,所以程序中每次都需要判断查询是否有这个数据,也就是说是一条查询操作,然后在将没有的数据插入到数据库中,重复的数据跳过。在假设每一个查询操作需要 3s 的时间,插入操作需要 1s 的时间(假设,不要认真啊。。)
那么,如果我使用两个线程,每个线程都有一个和数据库的连接,那么如果一个线程在查询的时候,那么是需要等待 3 秒的,那么这个查询操作是否是阻塞的呢?(第一个问题,是或不是我都想知道为什么)如果是阻塞的,那么是否操作系统会马上切换为其他线程,还是说会等待这个时间片到时间才切换?(第二个问题,无论哪个答案都想知道为什么)。
最后一个问题是需要插入大量数据的时候,有哪些地方可以提高效率呢?这个问题有点宽泛,想答就答吧。。
当然,有可能问题本身和我自己想的答案都有问题,也请指出来。
诚心请各位 v 友们指点下。