I'm using QGis to update the attributes of a large vector dataset (~20,000 polygons) stored in PostGIS. I'm going to have to do that to other large datasets so the idea is to bring in more people, each editing a separate table (no concurrent editing).

I'm wondering what would be the best option: Have the users connect directly to PostGIS and edit the data? Or publish the data in GeoServer and use WFS? Are there any gains in speed if I use WFS (cache, load only polygons in visible window)? Or would the extra layer (geoserver) slow me down? I'm using QGis as a desktop client.

2 Answers 2


What happens when two users try to edit the same polygon with PostGIS? With WFS LockFeature operation you get a well-defined behaviour in that situation. That said, there might be some pitfalls when using PostGIS (you would probably have to implement table locks).

The biggest benefit of using WFS over Postgis, in my opinion, is that you get a set of standard operations you can use without having to worry about what happens if...

  • 1
    I agree with you Zimmi and would rather use WFS but, my vector layer is pretty huge. So when I try to load the WFS layer published in Geoserver into QGis it gets slow. And when I restrict the number of polygons the WFS sends back to speed things up, the WFS layer is not updated when I pan the screen. So I guess my problem now is more related to how QGis handles WFS layers. UPDATE: I just found out about QGis Refresh button. Now I can update my WFS layer when I move around the canvas. It's not updating automatic but it works. So I guess I'll be able to use WFS after all.
    – Daniel
    Commented Feb 25, 2014 at 14:38

Without any optimization there should be losses in speed if you use WFS vs Postgis as you are using a middle step. Postgis also serves only polygons in visible window if the client requests so; also, you can always use pgpool to cache data in the postgis server. That being said I also believe it always depends on the usage case and your skills (e.g. strong geoserver skills, no postgresql ones etc.)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.