I will address your points separately.
Is it as a good idea to create static pages from all the articles?
No, it is better to create a single endpoint (e.g. a PHP script) which retrieves the article from the database and displays it as HTML. Of course, it is always a good idea to implement some caching mechanism to reduce hitting the database over and over for popular articles.
However, creating a static page for all articles is unecessary as they will be stored in two places this way - in the database and in static HTML files.
Are more pages in the one site better for SEO?
I am guessing by this you mean: is it better to have 1 million articles in a single site or split them in multiple sites?
The simplest answer is - it depends. If your articles are with mixed topics or you can differentiate them in categories (e.g. 10000 articles per category), it might be a wise idea to split each category in its own website and try to rank the sites on their own, to gain better SE rankings for different long-tail keywords/niches. However, if your goal is to build a general article directory, it might be better to include all 1 million articles in one site. Naturally, you would still want to separate them in topics or separate pages, so that search engines and real human visitors may better navigate and find relevant content.
There is no single solution that fits it all.
How do I let the search engine crawler collect my database?
You can't just upload your database to the search engines, but you may make it easier for them to crawl the pages on your site. By checking your site's content the crawlers determinate if that page is worth including in the SERPs (search engine result pages) for a given keyword.
You should know, that SEs don't just use quantitive factors when ranking pages (e.g. if your page will be the first result or 1000th), but qualititive as well - how old your site is, its PageRank, authority (how much incoming links you have from other websites and their quality).