MS Access (MDB) concurrency

后端 未结 11 1438
迷失自我
迷失自我 2020-11-27 14:09

For a small project I need to utilize a simple database with very light requirements: few tables, no more than few thousands of records in total, 2 or 3 users. I am working

11条回答
  •  清酒与你
    2020-11-27 14:48

    Access is really a desktop, single user solution. In practice, it has an upper user limit of "one".

    It is also a local engine. That is, when you run a query, data is pulled across the network to the local JET engine for processing. An .ldb file is placed on the network share to control locks.

    If you use a server side engine (MSSQL, MySQL, Sybase, 'Orable etc) then you submit a query to an engine that processes it and returns results to you. Locks are held internally.

    This has huge implications for performance, stability and data integrity.

    If your user decides to press the reset button, the Access databse has a fair chance of being corrupted and you'll have to delete the .ldb.

    With a proper database engine (MSSQL, Sybase, 'Orable: I don't like MySQL's backups) then you also a proper backup capability. Unless you have some whizzy software to backup inuse files, it's possible you'll have no backups of you data in the Access DB.

    I mentioned locks specifically because a db engine can handle concurrency and transaction far more efficiently and elegantly than any file-based system.

    I can see using an Access project as a front end for a database engine, but not investing in a full client app with an Access backend.

提交回复
热议问题