Jump to content

reproducing MSAccess db for Linux


Recommended Posts

I think this is a question of where the queries is run.

i.e. client side or server side with reference to where the data actually is.

 

For instance imagine 2 oracle databases called db1 and db2. presume I have a valid tnsnames.ora etc.

 

then

CREATE DATABASELINK db1.bigtable as bigtable;

Then

Select db1.bigtable.index, localtable.db1.bigtable, index from localtable,db1.bigtable where db1.index=localtable.index;

 

then the query must run through db1.bigtable for every record in localtable.

 

Using ODBC this can't be avoided therefore ODBC is always slow on databases in different locations.

To speed up the query above you can create a temporary take in the local server as CREATE TABLE temp_bigtable as seelct * from db1.bigtable.

 

Now the embedded select will run much faster, reutrn the results then issue a drop table.

 

Different connectivity acts differently. I don't know them all but for instance PERL create a # to the data and this takes a while the first time then its very fast after that becuase its basically just doing pointer incrementation.

In contrast something like access does the opposite with a linked table. It is completely client based so uses your machines resources BUT it subject to the delays from network latency.

 

 

Haven't looked at rekall BUT perhaps its operating the same way.

 

mysql works like Oracle so the client is the fastest, this passes the query direct to the server, the server runs the query locally and then just posts back the answers. You will see a big difference though depending on what you return.

i.e. select count(*) from averybigtable might take 0.03 seconds but select * from a verybigtable might take 20 minutes.

 

The secret is not passing things you don't need.

 

 

From my professional experience 4000 rows is a tiny table, more of a cataglue than a real data table most of which run to several million rows.

Acidentally returning the wrong result from the server 50ms away can be a big mistake (ooops)

 

Anyway, 'real databases' always need a strict server architecture to run eficiently. By real I mean where the database is really used as a database.

However databases are really useful for other things.... like backends to a bulltin board. Becuase the traffic is much less then other sloppier methods can be used and these have the advantage of being friendlier to program and noone notices the difference between 0.03 seconds and 0.1 seconds when it comes down to it.

 

This doesn't make the convenience databases anyless useful BUT its important to scale your database properly in terms of size of the data and concurrent users.

Its really not a 'snob thing', I know it comes over a bit that way but I use convenience databases too and I write sloppy code becuase its good enough and quicker.

Link to comment
Share on other sites

the mysql database was on the same computer.

0.2 seconds was render time on the browser which is much less than script execution time of php/mysql.

5 seconds to grab the initial data is way to slow, there must be driver problems, you can pass and retrieve data from a mysql database about as fast as the mysql client if the drivers are good.

Link to comment
Share on other sites

johhnyv

I haven't looked at rekal but like you say 5 secs is way to long ....

However what I was pointing out is 'its horses for courses'

Perhaps rekal would also take 5 second for a 10 million record table and its just the inital connection.

mysql, like Oracle uses TCP to connect and if its the same machine through localhost as opposed to direct UDP.

This adds a bit of latency in but its the same regardless of the size of the database wheras access, actually who knows how it works <G> .....

 

The rEAL PROB WITH ACCESS

 

EDITS...OOOPS damned laptop keys!!!

.. is the easy in and impossible out philosophy.

You prototype and add reports and stuff make forms etc. BUT its all propreitry access.

It will even let you create a webpage etc. but its damned MSDAOB rubbish spo it only works with access. Your trapped by all the development time you spent on reports and forms etc...

 

However, if you never intend to do anything demanding with it perhaps its OK???

But you better be sure before you start!!!

 

Its an annoying catch-22 that got me some years ago and I learned my lessons!!

Edited by Gowator
Link to comment
Share on other sites

Btw Openoffice has also it's own screipting language with the same syntax as VBA if I'mnot mistaken. I think VBA is compiled not, want I read you cannot run a VBA-application with OpenOffice or StarOffice. ONLY the syntax is he same, what also helps I think. Just take a look at the openoffice webpage and uif you don't find it I'll have alook at it.

 

So you can keep your VBA-code and access your database from OpenOffice or StarOffice.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...