ActiveRecord::Base.connection_pool.with_connection do |conn|
conn.execute("SELECT * FROM users")
end
ActiveRecord::Base.connection.execute("SELECT * FROM users")
两者的主要区别在于连接的获取和释放。在使用连接池时,获取连接可能需要等待其他线程执行完毕并释放连接,而在直接执行时则不会出现这种等待。另外,连接池会自动管理连接的数量,避免出现连接数过多的问题。因此,如果需要频繁地执行查询或事务,建议使用 with_connection,否则使用 execute 即可。