Wow, this is a big topic...
To take a stab at your questions, in order:
1. I have always used MySQL since it's readily available on almost all servers as well as easy enough to install on my local machine for testing purposes. Either that or store limited amounts of data in xml or plain text files -- as a flat-file db approach. PHP has many built-in functions to handle both of these approaches.
2. There are four things I can think of off the top of my head to minimize the size of your site.
(a) Reuse site-wide graphics on all pages, so the browser can cache the images and only have to load them once.
(b) Call any JavaScript routines that you use on more than one page from an external file, instead of repeating it on every page. <script type="text/javascript" src="path/to/js/file.js"></script>
(c) Call any CSS declarations you use on more than one page from an external file, instead of repeating it on every page. <style type="text/css" href="path/to/css/file.css" media="all" /> And; Use CSS instead of html attribute tags whenever possible, such as replacing html color and font attributes with site-wide style declarations.
(d) Include common page elements with php 'include' directives for all pages across the site. This might not make each individual page smaller, but will make updating common elements much easier (as will the use of CSS as mentioned above). These includes might be a header, banner, or footer with copyright notice, and footer menu that doesn't change appearance with what page you're on.
3. This is a personal preference type thing. So personally I tend to organize site resources into sub-directories -- following a system I've developed through trial and error over time. But remember, when editing the site in the future, you will be digging around trying to remember where you put everything, so make the nomenclature of your directories intuitive and try not to create too many levels as this can get frustrating when making updates.
Example:
public_html/
public_html/include/
public_html/include/img/
public_html/include/js/
public_html/include/css/
public_html/include/php/
public_html/content/
public_html/content/img/
public_html/content/pdf/
public_html/content/temp/
public_html/content/...etc/
You can organize your site pages into directories too, if you don't want to keep them in the root directory, or if there are so many of them that it gets confusing to sort through...but remember that you are reusing resources like images, style-sheets and JavaScript files, so make the different directories have the same relative path to these resources and things will go more smoothly as you go.
3. cont... PHP has many built-in functions and functionality. Learn them, familiarize yourself with the docs on the live php.net site -- since these contain user contributed notes which are invaluable, and download the docs to your local computer for quick reference on functions you know but just need a quick reminder for.
3. cont... Find programmers who have been doing it for a long time and study their code. This will give you a sense of what clean code tastes (looks and feels) like when you're writing your own. There are, unfortunately, more readily available examples of junky code when you do quick Google searches -- than good.
I could prattle on for a long time on each of these topics and still barely scratch the surface. So here are just a few available resource that you might look into as well.
Buy books on the subjects you need to learn. Find ones that are easy for you to read and are not too dense with information but have lucid examples. I suggest these two publishers but you may find others work better for you.
O'Reilly ::
O'Reilly Media | Spreading the knowledge of innovators
SitePoint ::
SitePoint : New Articles, Fresh Thinking for Web Developers and Designers
JavaScript resource websites:
How To Create
JavaScript Kit- Your comprehensive JavaScript, DHTML, CSS, and Ajax stop
QuirksMode - for all your browser quirks
Style Sheet (CSS) resource websites:
css Zen Garden: The Beauty in CSS Design (experience what can be done)
SitePoint CSS Reference
How To Create
QuirksMode - for all your browser quirks
PHP resource websites:
PHP: Hypertext Preprocessor (use the function or site-wide search)
Google (when all else fails)
I'm sorry if this reply tries to be too specific, but each of these topics are a slippery slope and after 10 years as a developer working in custom graphics, flash, actionscript, javascript, perl, php, (x)html, ajax, mysql, and others technologies and approaches -- it's challenging for me to keep my good intentions short. If you need to contact me with other specific questions, I will try to answer you as best I can and as time allows. designATsatarahDOTcom