都说建立一个可以建立一个单例模式的数据库连接类,每次访问的时候都用这个类生产的唯一对象去对数据库操作,可以减少打开关闭数据库的消耗。有一个问题,假如一个数据库打开,一条查询很久的话,是不是这个对象就无法执行其他查询了,导致其他用户的查询要等上一个用户的执行完成先。还是说可以同步执行其他用户的查询?
都说建立一个可以建立一个单例模式的数据库连接类,每次访问的时候都用这个类生产的唯一对象去对数据库操作,可以减少打开关闭数据库的消耗。有一个问题,假如一个数据库打开,一条查询很久的话,是不是这个对象就无法执行其他查询了,导致其他用户的查询要等上一个用户的执行完成先。还是说可以同步执行其他用户的查询?
这得看你是什么语言了,如果是PHP这种语言,单例只是页面级的,每次请求都会生成对应的单例,一次请求结束后对象就会被回收。如果是Java这种类型的语言,单例是全局的,这时候就可能出现你说的那种情况,不过一般不会只用一个连接,Java种常用的是连接池,数据库操作类是单例,连接池也是单例,但是其中的连接是由连接池动态管理的,这时候就不会出现你担忧的情况了。