假设是下面的情景中:
我需要插入五百万条数据到数据库中,但是这些数据中有些是有重复的,但是我不要重复的数据纪录,所以程序中每次都需要判断查询是否有这个数据,也就是说是一条查询操作,然后在将没有的数据插入到数据库中,重复的数据跳过。在假设每一个查询操作需要 3s 的时间,插入操作需要 1s 的时间(假设,不要认真啊。。)
那么,如果我使用两个线程,每个线程都有一个和数据库的连接,那么如果一个线程在查询的时候,那么是需要等待 3 秒的,那么这个查询操作是否是阻塞的呢?(第一个问题,是或不是我都想知道为什么)如果是阻塞的,那么是否操作系统会马上切换为其他线程,还是说会等待这个时间片到时间才切换?(第二个问题,无论哪个答案都想知道为什么)。
最后一个问题是需要插入大量数据的时候,有哪些地方可以提高效率呢?这个问题有点宽泛,想答就答吧。。
当然,有可能问题本身和我自己想的答案都有问题,也请指出来。
诚心请各位 v 友们指点下。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.