Re: Image library
| From: | Justin French | Date: | Thu, 22 Aug 2002 02:38:11 +0000 |
| Subject: | Re: Image library | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-113564@lists.php.net to get a copy of this message | ||
So hash them into groups of 1000 images????
1-1000
1001 - 2000
2001 - 3000
etc etc, and just name the files 1.gif, 2.jpeg, etc etc
Justin French
on 22/08/02 12:41 AM, Scott Houseman (ScottH@JamWarehouse.com) wrote:
> Hi there.
>
> So what you are suggesting is using an AUTO_INCREMENT field, possibly the
> image's Primary Key as an identifier
> for that image file., which is fine by me, but surely one should store files
> across directories, as 10000 images
> in a single directory might slow down access to those images in the
> filesystem, or not so?
>
> Thanks for your input.
>
> Regards
>
> -Scott
>
>> -----Original Message-----
>> From: DL Neil [mailto:PHPml@DandE.HomeChoice.co.uk]
>> Sent: 21 August 2002 04:31
>> To: php-general@lists.php.net; Bogdan Stancescu
>> Subject: Re: [PHP] Image library
>>
>>
>> Scott (confirming Bogdan),
>>
>> Libraries of all types have had this concern for years - even though books
>> are uniquely identified by ISBN, that is still not good enough for library
>> purposes (eg multiple copies of a single title). So they, exactly
>> as Bogdan
>> suggests, use an "Accession" number sequence - which can be
>> implemented very
>> neatly in MySQL (from PHP) as an AUTO_INCREMENT field.
>>
>> Regards,
>> =dn
>>
>>> I've seen this kind of random approach several times and I keep
>>> wondering why not counting the files instead. Yes, it may take a little
>>> longer when uploading but I personally think the safety of the approach
>>> is worth the insignificant speed sacrifice.
>>>
>>> Bogdan
>>>
>>> Scott Houseman wrote:
>>>> Hi all.
>>>>
>>>> This confirms what I suspected.
>>>>
>>>> The hash algrithm:
>>>>
>>>> I have a directory structure: dirs 0 - f, and within each of
>> these, the
>> same
>>>> dir structure 0 - f.
>>>> When an image gets uploaded into the library, do an md5sum of
>> the file,
>> take
>>>> the first 2 chars of that hash
>>>> and there's your path. e.g
>>>> $PICDBPATH.'/a/7/a7b8be10b0e69fe3decaa538f1febe84'
>>>>
>>>> I'm not sure what the mathematical randomness of this is, but I'm sure
>> it's
>>>> pretty random, and the chances
>>>> of collision should be virtually null, the only time you should
>> overwrite a
>>>> file is if you upload the exact same file(?)
>>>> Is there a better way of doing this?
>>>>
>>>> Cheers
>>>>
>>>> -Scott
>>>>
>>>>
>>>>> -----Original Message-----
>>>>> From: Justin French [mailto:justin@indent.com.au]
>>>>> Sent: 21 August 2002 03:25
>>>>> To: ScottH@jamwarehouse.com; PHP General
>>>>> Subject: Re: [PHP] Image library
>>>>>
>>>>>
>>>>> on 21/08/02 9:45 PM, Scott Houseman (ScottH@JamWarehouse.com) wrote:
>>>>>
>>>>>
>>>>>
>>>>>> Which way would be the most efficient/fastest to access images
>>>>>
>>>>> from an image
>>>>>
>>>>>> library.
>>>>>> A) Store image files in a hash directory structure AND storing
>>>>>
>>>>> each file's
>>>>>
>>>>>> information in a mysql table
>>>>>> OR
>>>>>> B) Storing image information in mysql table AND storing the
>>>>>
>>>>> image in a BLOB
>>>>>
>>>>>> field in that table.
>>>>>
>>>>>> From all accounts I've read on this list, a database is not
>>>>> usually faster
>>>>> than a filesystem. And for large amounts of files, like 1000's,
>>>>> a hash will
>>>>> speed it up more.
>>>>>
>>>>>
>>>>>
>>>>>> The way I see it, considerations to be taken into acount:
>>>>>> - Is it quicker/better to retrieve image from table & then stream out
>> to
>>>>>> browser OR simply direct the browser to the file?
>>>>>> i.e <IMG SRC="/imagelib/image.php?iImageID=10"> OR <IMG
>>>>>> SRC="/imagelib/5/f/10">
>>>>>> - Will a database OR filesystem be more scalable i.e. which
>> wil perform
>>>>>> better when there are 10000 images in the libary?
>>>>>
>>>>> Filesystem should be quicker. You need to think about how
>> you hash the
>>>>> files up for the most even spread of files in each directory I guess.
>>>>>
>>>>>
>>>>> Justin
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> PHP General Mailing List (http://www.php.net/)
>>> To unsubscribe, visit: http://www.php.net/unsub.php
>>>
>>>
>>
>>
>> --
>> PHP General Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>>
>