All Apex runs on the Force.com platform, which is a shared resource used by all other organizations. To
guarantee consistent performance and scalability, the execution of Apex is bound by governor limits that ensure no single Apex execution impacts the overall service of Salesforce.
This means all Apex code is limited by the number of operations (such as DML or SOQL)
that it can perform within one process.
All Apex requests return a collection that contains from 1 to 50,000 records. You cannot assume that your code only works on a single
record at a time. Therefore, you must implement programming patterns
that take bulk processing into account. If you do not, you may run
into the governor limits.