|
Posted by Malcolm Dew-Jones on 12/18/97 11:50
Jerry Stuckle (jstucklex@attglobal.net) wrote:
: Colin McKinnon wrote:
: > Jerry Stuckle wrote:
: >
: >
: >>Kyle Teague wrote:
: >>
: >>>What would give better performance, serializing a multidimensional array
: >>>and storing it in a single entry in a table or storing each element of
: >>>the array in a separate table and associating the entries with the entry
: >>>in the other table?
: >>>
: >>
: >>That depends. Is the multidimensional array a single entity - or is it a
: >>collection of entities?
: >>
: >>Do some research on "database normalization". It's almost never a good
: >>idea to store multiple entities in a single field in a RDB.
: >>
: >>BTW you can still do it with one query by joining tables.
: >>
: >>One other thing - this isn't a PHP question - you should be asking in a
: >>group related to your database, such as comp.databases.mysql.
: >>
: >
: >
: > I don't think its OT. It really depends how big the array is and whether you
: > need all of it in memory every time you access it. If you only need a
: > specific element, I was surprised to find that even for quite small sets of
: > values the database was faster.
: >
: > Build a test rig and try it out for yourself.
: >
: > HTH
: >
: > C.
: Colin,
: Look at the question again. He's asking about the method of storing data in a
: database (database structure), not array handling.
Look at the question again. He's asking about "serializing a
multidimensional array", which is php array handling.
In other words, he is asking whether it is better to implement his data
structure in php and use the database just as a blob-like storage medium,
or is it better to implement his data structure in the database and use
php just as an access method to get at the (already structured) data.
I would normally tend to towards defining the correct database structure
to hold the data. It will be more flexible in the long run, and you still
have the option of loading the data into a php data structure if you
really need to do that for speed in some situations.
Navigation:
[Reply to this message]
|