If you're at the point where everything else is totally optimized and requests is the only thing left to address (and is a real issue, not a perceived issue), then you should consider moving your images and other static assets offsite to a provider like Akamai. Send your non-appserver requests to somebody else's farm.
Shawn Gorrell Web Development Applications Architect Federal Reserve Bank - Atlanta Office (404) 498-8449 Derrick Peavy <[EMAIL PROTECTED]> Sent by: [EMAIL PROTECTED] 01/18/2007 03:46 PM Please respond to discussion@acfug.org To discussion@acfug.org cc Subject Re: [ACFUG Discuss] Image from DB Just to be clear.... the security aspect is of no issue here. I am not interested in doing this for security. I agree with those who have posted about the con's of doing image management in a DB. I don't want to do that. What I specifically was trying to accomplish is the storage of a finite number of images, about 5 total. Each of which are under 5 kb. The goal was/is that CF could output the one or two images on the front page along with the CFML all in one http request. Again, I know it's trivial and I know that there is no performance gain per se. But, as mentioned in the article I referenced, if currently I have three HTTP connections to load a 90k page, and I can take that down to one HTTP connection for the same 90k, then 500,000 users per day would be 500,000 requests per day, not 1.5 million. Make sense? If one assumes that the other aspects of the app are tuned (DB queries, CFML, Apache or IIS, hardware, etc., - and that's a big assumption), then a final spot would be the HTTP requests. And, that would be more out of curiosity than necessity. Although, the end result would certainly be desirable, a fast loading, single request which gives the user the feeling of a very responsive site. Again, thank you to everyone - in fact, I went back and changed my httpd.conf file to enable http keep alives - not sure why that was off to begin with. So, there has been some positive feedback from all of this! _____________ Derrick Peavy Sales and Web Services Universal Advertising Phone: 404-786-5036 Fax: 404-370-0470 http://www.universaladvertising.com http://www.collegeadvertising.com http://www.collegeclassifieds.com ___________________________________ On Jan 18, 2007, at 3:29 PM, Josh Adams wrote: Sure it's data management. You could keep text data on the file system too but you typically don't--unless maybe it's a lot of text, right? Images are no different--if they're not that big, why complicate matters by storing them on the file system? You're already having to do a DB lookup to know what to retrieve--that's the crucial difference between "page furniture" and data. But whatever. Josh From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of John Mason Sent: Thursday, January 18, 2007 2:50 PM To: discussion@acfug.org Subject: RE: [ACFUG Discuss] Image from DB I agree that with strict image security it is an option. Give an image only to particular people, etc. But data management? I don't think so, but let's just my opinion. Image security is probably the only practical example I can think of for doing this, but there again Derrick isn't going for that. As far as having html text and the image binary on the same 'page'...I've never send that before. John [EMAIL PROTECTED] From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Josh Adams Sent: Thursday, January 18, 2007 2:42 PM To: discussion@acfug.org Subject: RE: [ACFUG Discuss] Image from DB Not true--there can be a benefits: data management & security. Derrick started this whole discussion on the BlueDragon Interest list. I guess he brought it here because no one could tell him a technique for doing what he wanted on that list. But over there just as here, people asked the "why would you do that?" question about storing images in the DB. An good rule of thumb was put forth: if it's "page furniture," keep it in the file system; if it's data, keep it in the DB. If it's data, use your data management tool (a.k.a. your database) to manage it--why reinvent the wheel? On the security side of things, note that by using <img src=".../myheaderimage.cfm">, you can implement all the same security you would for any other resource your app serves up. Josh From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of John Mason Sent: Thursday, January 18, 2007 10:27 AM To: discussion@acfug.org Subject: RE: [ACFUG Discuss] Image from DB Honestly, there's not really a benefit per se. There might be a rare case now and then for doing this, but really you should probably just use the filesystem for what it's design for, storing files. John From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Fennell, Mark P. Sent: Thursday, January 18, 2007 10:22 AM To: discussion@acfug.org Subject: RE: [ACFUG Discuss] Image from DB I'm just curious. What are the benefits of storing the image in the db rather than storing the file on the filesystem and the path in the db? I mean, for a web page, all you need is the <img> and the path. I can understand how it might be useful in some VB or C or Java app where the client doesn't display images with such ease, but for a web app...? Thanks. mf -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of John Mason Sent: Thursday, January 18, 2007 10:16 AM To: discussion@acfug.org Subject: RE: [ACFUG Discuss] Image from DB I believe there would still be three http requests here. The images would still be called up in the html like <img src=""> right? Sorry but in http that would still create seperate http requests. John [EMAIL PROTECTED] From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Derrick Peavy Sent: Thursday, January 18, 2007 9:35 AM To: discussion@acfug.org Subject: [ACFUG Discuss] Image from DB Probably an easy problem for someone... I want to put two small images in my database and then output them in my app, so that they do not constitute additional http requests. Consider it an experiment - I know that it may seem a bit silly. The goal is for the entire page to be delivered to the browser in one http request, instead of 3 (two images and one cf page) without doing any Apache tinkering. I have looked around the net for answers and cannot seem to make this work. Database field is "imageFile" of type BLOB in MySQL 4.1.13. What is the proper way to insert the image? Example: INSERT into Images (imageFile) values ('#base64(image)#') -Or- Example: INSERT into Images (imageFile) values ('#image#') And then of course, how do you retrieve it? Example: SELECT imageFile FROM Images WHERE imageID=1 <cfoutput> #toString(imageFile)# </cfoutput> -OR- <cfoutput> #toBinary(imageFile)# </cfoutput> As I say, I've not been able to make this work. If I use toString(), I simply get the raw data. If I use toBinary(), I get an error that the data cannot be converted to a string. Also, using CFCONTENT is fine to output the image, but then any code after that is ignored. So, short of saving the entire page and then outputting, it, I don't see a way to use CFCONTENT. _____________ Derrick Peavy Sales and Web Services Universal Advertising Phone: 404-786-5036 Fax: 404-370-0470 http://www.universaladvertising.com http://www.collegeadvertising.com http://www.collegeclassifieds.com ___________________________________ ------------------------------------------------------------- To unsubscribe from this list, manage your profile @ http://www.acfug.org?fa=login.edituserform For more info, see http://www.acfug.org/mailinglists Archive @ http://www.mail-archive.com/discussion%40acfug.org/ List hosted by FusionLink ------------------------------------------------------------- ------------------------------------------------------------- To unsubscribe from this list, manage your profile @ http://www.acfug.org?fa=login.edituserform For more info, see http://www.acfug.org/mailinglists Archive @ http://www.mail-archive.com/discussion%40acfug.org/ List hosted by FusionLink ------------------------------------------------------------- ------------------------------------------------------------- To unsubscribe from this list, manage your profile @ http://www.acfug.org?fa=login.edituserform For more info, see http://www.acfug.org/mailinglists Archive @ http://www.mail-archive.com/discussion%40acfug.org/ List hosted by FusionLink ------------------------------------------------------------- ------------------------------------------------------------- To unsubscribe from this list, manage your profile @ http://www.acfug.org?fa=login.edituserform For more info, see http://www.acfug.org/mailinglists Archive @ http://www.mail-archive.com/discussion%40acfug.org/ List hosted by FusionLink ------------------------------------------------------------- ------------------------------------------------------------- To unsubscribe from this list, manage your profile @ http://www.acfug.org?fa=login.edituserform For more info, see http://www.acfug.org/mailinglists Archive @ http://www.mail-archive.com/discussion%40acfug.org/ List hosted by FusionLink ------------------------------------------------------------- ------------------------------------------------------------- To unsubscribe from this list, manage your profile @ http://www.acfug.org?fa=login.edituserform For more info, see http://www.acfug.org/mailinglists Archive @ http://www.mail-archive.com/discussion%40acfug.org/ List hosted by FusionLink ------------------------------------------------------------- ------------------------------------------------------------- To unsubscribe from this list, manage your profile @ http://www.acfug.org?fa=login.edituserform For more info, see http://www.acfug.org/mailinglists Archive @ http://www.mail-archive.com/discussion%40acfug.org/ List hosted by http://www.fusionlink.com -------------------------------------------------------------