开发者

Most efficient way to do this PHP script

I have any number of users in a database (this could be 100, 2000, or 3) what i'm doing is using mysql "show tables" and storing the table names in an array, then i'm run开发者_StackOverflow中文版ning a while loop and taking every table name (the user's name) and inserting it into some code, then i'm running said piece of code for every table name. With 3 users, this script takes around 20 seconds. It uses the Twitter API and does some mysql inserts. Is this the most efficient way to do it or not?


Certainly not!

I don't understand why you store each user in their table. You should create a users table and select from there.

It will run in 0.0001 seconds.

Update:

A table has rows and columns. You can store multiple users in rows, and information about each user in columns.

Please try some database design tutorials/books, they wil help you a great deal.


If your worried about storing multiple entries for each user within the same users table, you can have a seperate table for tweets with the tweet_id refering to the user.

I'd certainly go for one users table.


Databases are optimized for processing many rows; some of the techniques used are indexes, physical layout of data on disk and so on. Operations on many tables will be always be slower - this is just not what RDBMS were built to do.

There is one exception - sometimes you optimize databases by sharding (partitioning data), but this approach has as many advantages as disadvantages. One of the disadvantages is that queries like the one you described take a lot of time.

You should put all your users in one table, because, from logical point of view - they represent one entity.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜