Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Performance - with high load and lots of data??


bfl

Recommended Posts

How does osc perform with high lots of data (many records, big databases and many simultaneous users)??

 

Does anyone have any experience with that?

What is the biggest installation(s) of osc to date?

 

---

- The size of the DB in question is around 30-80GB (is an Oracle DB).

- Handling around 15.000 customers (but of course not simultaneously...)

- The individual orders can sometimes be several hundreds of orderlines

 

- Would we need to run Oracle instead of MySQL, or would MySQL be able to handle those amounts of data?

 

Hope some of you can help!

 

Looking forward to hearing from you :-)

 

BFL

[email protected]

Link to comment
Share on other sites

You would need to modify a few queries, add proper indexes, and possible use an INNO DB table type if having lots of concurrent users...but it can be done.

 

Bobby

Link to comment
Share on other sites

  • 3 months later...

Currently I have a client that sells automotive parts online using an OsCommerce store I setup. http://www.performancenissanparts.com.

 

Currently there are over 8,500 customer accounts, and 4,000 products in the database. In addition over $1.5 million in online sales last year alone.

 

The site averages about 75 - 100 people viewing information in the store at any given time.

 

So far, so good. One comment, if you go really deep with subcategories and have a log of them under one mail folder, in the Admin the categories page will take a long time to load. The store however that customers see seems to have not experienced any slowdown because of this.

 

Hope that helps.

__________________________

 

David McGuffin

Web Designer

Link to comment
Share on other sites

A 15,000 customer database in OSC should be nowhere near that size.

 

Taking your lower estimate of 30GB, dividing by 15,000 gives 2MB per customer?

 

Even if, as you say a customer makes 100s of orders, it still doesn't add up.

 

MySQL is perfectly up to the task, depends if your hardware and SQL knowledge is...

Link to comment
Share on other sites

A 15,000 customer database in OSC should be nowhere near that size.

 

Taking your lower estimate of 30GB, dividing by 15,000  gives 2MB per customer?

 

Even if, as you say a customer makes 100s of orders, it still doesn't add up.

 

MySQL is perfectly up to the task, depends if your hardware and SQL knowledge is...

 

what about products, information on these is stored in the database too, countries etc. I dont see why the DB wouldnt get that big.

Link to comment
Share on other sites

A 15,000 customer database in OSC should be nowhere near that size.

 

Taking your lower estimate of 30GB, dividing by 15,000  gives 2MB per customer?

 

Even if, as you say a customer makes 100s of orders, it still doesn't add up.

 

MySQL is perfectly up to the task, depends if your hardware and SQL knowledge is...

Looks like you got your posts mixed up...I don't believe David ever gave filesystem requirements for his client site.

what about products, information on these is stored in the database too, countries etc. I dont see why the DB wouldnt get that big.

...still wouldn't take up that much room. I would estimate the original poster's filesystem requirement to be in the 10-12 Mb range.

 

Bobby

Link to comment
Share on other sites

- Would we need to run Oracle instead of MySQL, or would MySQL be able to handle those amounts of data? [\quote]

 

At present, you *have* to run MySQL. I suppose you could customize osC to run on Oracle, but it's not currently coded that way.

 

-jared

Link to comment
Share on other sites

The existing customer systemet how has around 50GB of data.

This is because historic data is stored. At the moment I believe that there are data from the last two years.

 

But it sounds like it should be no problems :-)

Link to comment
Share on other sites

At present, you *have* to run MySQL.  I suppose you could customize osC to run on Oracle, but it's not currently coded that way.

 

-jared

Although osC was coded to be used with MySQL it can easily be converted to use just about any database. The simple answer is to use an ADODB or PEAR database class that can be used for most databases. It shouldn't take more than an hour to implement an abstracted database layer...

 

As a personal preference I use the ADODB class over the standard PEAR package.

 

 

Bobby

Link to comment
Share on other sites

just make sure you are on a dedicated server in a data center which has very high speed connections, will make it lots easier. with a couple gig of ram, optimized with mysql and you will have no slow down. i currently have customers with up to 9000 customers and they dont see a degredation in the server, unless there are a few hundred people on the server, then it is a tad slower.

they process all their orders on their local systems, downloading all the orders every hour during the day, and then process them via the accounting system, and have no complaints.

Link to comment
Share on other sites

Perhaps, but how many of us are comfortable budgeting only an hour to attempt implementation of an abstract database layer? I suppose if I really wanted to use Oracle, PostgreSQL, dBase, or Foxpro (just kidding), then we could.

 

BUT, out of the box, you need to use MySQL, and since it already works . . .

 

IMO, unless you've got a specific need to use another database, stick with what's already working.

 

As an aside, Bobby, do you happen to know any generic performance expectations of Oracle or other databases vs. MySQL? I've heard that MySQL is quite fast, but that it gives up some database integrity features to accomplish that.

 

-jared

Link to comment
Share on other sites

Perhaps, but how many of us are comfortable budgeting only an hour to attempt implementation of an abstract database layer?  I suppose if I really wanted to use Oracle, PostgreSQL, dBase, or Foxpro (just kidding), then we could.

 

BUT, out of the box, you need to use MySQL, and since it already works . . .

 

IMO, unless you've got a specific need to use another database, stick with what's already working.

 

As an aside, Bobby, do you happen to know any generic performance expectations of Oracle or other databases vs. MySQL?  I've heard that MySQL is quite fast, but that it gives up some database integrity features to accomplish that.

 

-jared

Jared,

 

It's not as hard as it sounds to implement a database abstraction layer. Each tep function has a cooresponding ADODB (or PEAR) function...just return the object method instead of mysql_* function. Then, if you need to switch databases on the fly it's as easy as changing a defined constant (MySQL versus PostgreSQL for example).

 

The specific need that I have encountered is with store owners hosted on an Windows/IIS/MSSQL server setup. In this case most people would recommend another application (probably something ASP based). However, just add ADODB and it can use MSSQL just as easily as MySQL and run just as fast. :) Another scenario is a high volume client that needs to take advantage of transactions. In this case, just add ADODB and let them pick their desired database. That is the power of abstraction...you can switch on the fly and everything will still work.

 

As for a comparison of Oracle versus MySQL: I don't have enough experience to compare the two. One of these days when someone pays me $250K as an application engineer it might be different :)

 

Bobby

Link to comment
Share on other sites

That actually doesn't sound that hard (really). Hmmm... Now if I could only catch up on some other things and get some time to play. :)

 

-jared

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...