Which DB Server should I use?

I need to develop a new (desktop) small business application. This business currently has an Access database with millions of records. The file size is about 1.5 GB. The boss told me that searching this database is very slow. The database consists of one table with approximately 20 fields.

I also think the overall DB design is small. I was thinking of using a different DB server with a new design for better performance and efficiency.

Given that this is a relatively small business, I don't want to spend a lot on a database license, so I want to ask you what would you do.

  • Keep using Access, perhaps improve and optimize your database in some way.
  • Buy a database server license (in this case, which one?)
  • ? (any idea?)
+2


a source to share


15 replies


Things like SQL Server Express , MySQL and PostgreSQL are available for free, no license purchase required.



To improve search speed, you probably also want to look at things like what indexes are defined on the table, what exactly does the search do, etc.

+6


a source


The second recommendation is for Firebird. We have been using it for about 5 years and have never encountered a problem. Cross platform, embedded and server deployments ... brilliant. Oh, and free like beer. Mozilla Public LIcense.



+3


a source


Put me up as another recommendation for Firebird. We use it with our Point of Sale commercial product. We have installed it on over 1000 sites with databases up to 40 gigabytes in size. It's fast, stable, simple, easy to deploy, and requires no management.

+3


a source


You can replace the Access database with a SQL Server database that will scale well. You can use SQL Server Express , which is free and supports databases up to 4GB that I can use.

+2


a source


SQL Server Express . Free for database sizes up to 10 GB.

+1


a source


I highly recommend MySQL. Its sometimes free and easy to install on both Windows and Linux.

There are also many free, free tools to manage your content like tables, users, indexes, etc.

+1


a source


SQL Server Express is perfect for this. http://www.microsoft.com/express/database/

+1


a source


You can take a look at Firebird

Firebird is one of the best databases for desktop applications and will always be free.

Several tools exist to convert database from firebird access.

+1


a source


I would see if it is necessary to split a large table into smaller ones (rarely needed, but still), as well as what indexes on it. And for database software, I would recommend PostgreSQL. It's free, easy to use (and I find it easy to set up, although others ask to differentiate), and it's fast enough for enterprise applications.

+1


a source


I also recommend Firebird .

Its main advantages for your scenario (from above):

  • built-in version. You can ship it using your app - no separate installation kit required, no .NET dependencies, etc.

  • later you can easily scale to the full client-server model. No code changes are required.

  • very small footprint

  • the entire database is stored in one file. Much easier to deploy compared to other solutions.

  • you can have your server on any platform you want: Windows, Linux, MacOSX, etc. Of course you can have your client on the same platforms as well, but since you mentioned Access, I assume you have a Windows application.

  • no need for server administration. It just works.

+1


a source


I also recommend PostgreSQL (especially as a MySQL alternative)

0


a source


Nobody ever mentions it, but Oracle also makes a free version of their database: Oracle Express Edition (aka XE). It's limited to 1 CPU, 1GB of RAM, and 4GB of user data, but that sounds big enough for your application.

As far as your database design goes, only one table looks more like a spreadsheet than a database application. You probably have a lot of denormalized data. Dividing them up into smaller deduplicated tables can speed up certain queries significantly. However, if you only have twenty columns, there may not be much room for customization.

As for the recommendation, the question is, what products do you know? If you are familiar with Access, I suggest you optimize your existing database. I've worked with Access databases that store several million rows and they perform reasonably well. After all, there is no guarantee that moving the same design to another product will automatically make things work much faster. Another advantage of Access as a tool is that it comes with a built-in interface. If you are migrating from Access, you might need to consider rebuilding your application.

0


a source


Wow, people have a lot of recommendations for the platform.

Let me just say this.

If you feel there are design issues as well as platform issues, why not try redesigning first? These are the changes you are most likely to make.

If they don't impact performance in Access, you are as good as these changes improve maintainability on any platform.

You can then try other platforms, knowing that you have a solid design and that you haven't wasted any time.

0


a source


SQLite could also be a candidate.

0


a source


I would advise not to go expressing anything - yes, your little one, but what if the bus takes off and requires much higher loads in the future - surely you want it to go? don't want to switch db / run 2 levels ..

I would look at MySQL or Firebird (used for borland interbase) as very high quality.

0


a source







All Articles