Useful pieces on these topics include:
Catyoul's Python Mineral patch mining rates
http://www.teamliquid.net/forum/viewmessage.php?topic_id=92971
CDRDude's Worker Saturation post
http://www.teamliquid.net/forum/viewmessage.php?topic_id=83287
Anthrax's Gathering Review
http://www.yellowchrome.org/1com/sclegacy/final_review.pdf
Dead9's Terran Python Mineral patch mining rates Terran
http://www.teamliquid.net/blogs/viewblog.php?topic_id=80414
IMPERVIOUS on Mining rates
http://www.teamliquid.net/forum/viewmessage.php?topic_id=89939
Chinese Mining rate figures
Link broken now, anyone got a new link? They were very accurate
The figures from these posts are pretty good and generally in agreement with the ballpark figures I have found. All of my experiments are with Protoss probes and done at Fastest with time measured using APMLive's clock. The results are likely to be slightly worse for Zerg and Terran.
Ballpark figures
What has been missing from previous discussion is accurate information on maximums and an understanding of wander. Let's start with some numbers (Protoss).
1 Probe Minerals Per Minute
Ideal Patch 76
Near Ideal 72
Normal/Bad 56-68
Infinite Probes
One patch max ~142.4
9 patches Theoretical ~1281.6
9 patches Avg Real ~1270
So there is an absolute upper limit to how many minerals probes can produce in a given time. This seemed to be something many players wondered about. Now how obtainable is this in reality?
Wander
If you look at CDRDude's mineral production chart:
http://img123.imageshack.us/img123/7841/picture2ok6.png
You might assume he had made mistakes based on the shapes of the curves, and this is part of what has confused people about maximum gathering rates. He didn't make a mistake and was correct in suggesting it was wandering behaviour. A more correct version of the minerals per minute chart would show increasing variation, curves with a width from ten workers up to three times as many workers as patches. This raises a very interesting point about Starcraft- between more workers than mineral patches and before stability (I will come to this) your mineral income is semi-random and can vary by +/-100 per minute with identical worker counts. This might be a small part of why Starcraft feels both so fresh and fun, even after so long.
Stability
What previous examinations of mining rates seem to have missed, and why there is so much confusion about what is optimal, is the ultimate state that sufficient workers reach of stability. This is when there is absolutely no wander at all and as a result, all of the mineral patches are effectively maxed out. You can usually see this by eye, although you may have to look several times to be sure as workers can look stable for sometimes up to 30 seconds before collapsing back into bad wandering.
Understanding worker AI helps; when a worker attempts to mine a patch (a discrete action that happens when a worker arrives at a patch and when the previous worker finishes mining if the worker is queued) three things can happen. If it attempted to begin mining within a few frames of the current miner it will wait. You can see this by taking 12 workers and spamming clicks on a patch then stop clicking. The workers tried to mine at the same time, one began mining and the others formed a queue. These workers will not wander no matter how many patches are free until they have left the queue, each worker has a position in the queue, and, when the patch becomes free only the next one in order will attempt to mine. The worker returning minerals will do so and return to the patch, seeing it occupied it will wander, looking around up to 8 matrixes for the nearest free patch to move to, moving to mine from that patch regardless of pathing distance; this is why manner pylons make workers move to the back of the mineral patch.
In a real game, until minerals are saturated, there will always be times when minerals are not mined. If this coincides with a worker looking for a new patch to mine from the worker will move there, usually multiple workers will do so. The patch will sometimes have become occupied before the workers reach it, causing the 'train' of wanderers to stop if no patches are free or to train to the next free patch. Often free patches alternate between distant minerals patches at either end of a mineral line causing extreme inefficiency in the workers. Wander reduces mining rate not only by the travel but also by stacking workers on a patch when they arrive at the same time and by reducing the saturation of the area they came from, often causing one or two mineral patches to be completely ignored for several seconds even with a high worker count and inevitably causing another round of wander back to those patches.
This is why wander costs you so much and why it's somewhat random, it can involve one or two workers all the way up to nine or so when that's one third or more of your total miner count. It often follows periodic behaviours rather like a sin wave although this is hard to measure due to the short-lived nature of each state of wander and difficulty of comparison to create averages. The average figures given over five or ten minutes (Chinese mining rate figures, CDRdudes's, etc) are pretty good guides but at any moment your rate can be quite different to that.
Something that was very interesting was the effect from 22 workers on 9 patches to 23, possibly supporting the 2.5 workers per patch conventional wisdom. 23 workers usually produce around 50 less minerals per minute than 22, the wandering gets that much worse. The problem is that in a real game you wont be counting that accurately and will easily end up costing yourself minerals with a useless worker if you're tring to use 2.5 as a guide.
At three workers per patch and above your miners can reach the state of stability. At this rate every patch is constantly mined meaning no wander happens. It can take anywhere from twenty seconds to over five minutes to go from wandering to stable, somewhat dependent on the spawn's mineral arrangement. When you reach stability with ~27 workers (more allow you to reach stability faster) your mineral gathering rate will jump from between 1050 and 1150 to a stable 1270. 100-200 minerals per minute is not trivial.
Fewer or split mineral patches means workers are noticeably quicker to stabilise so 3 workers per patch on an expansion is usually a good idea, it will pay more than the figures most people have given would lead you to believe.
Optimisation
In a perfect world how many miners would max out minerals? There seems to be a strong myth that two workers would max out all patches and only the AI messes this up. This is complete nonsense and only a few ideal patches are maxed out by 2 workers (and sometimes it is dependent on the matrix the miner mines from, some are considerably better than others, the 12 o'clock Python Natural's right-most patch has two stable mining positions (as in if you tell the probe to do it it keeps doing it in the same place), the left position turns diagonally right to mine and the path is a straight line down and back from minerals to nexus, producing 76 minerals per minute. The other position directly below the mineral patch paths to the middle of the nexus to return and only mines 64 per minute. So far so trivial you say, well when you want to achieve saturation that is the difference between two workers and three.
Any patch that produces over 72 minerals per minute can be saturated with two workers, 72 per min patches are sometimes stable and sometimes not, possibly missing single frames of mining due to factors I don't understand (is there a limited rate of mineral return, like one mineral or gas per frame per Nexus?) but enough to set off mineral-line wide wandering. So unstable 72s and those that produce less require 3 workers. Generally to achieve stability you must have 3 times as many workers as patches but once it's happened you can remove optimal excess workers (sometimes optimal patches will already have only 2 and the excess workers will be queued 3 deep with another travelling for another patch). Python 6 o'clock can be maxed out with 25 mineral miners (2 ideal patches, 3 more near ideal but unstable). At expansions you could usually potentially remove one or two workers, the excess workers should be removed smoothly by telling them to mine gas or distant minerals as they may mess up pathing and cause wandering when removed otherwise.
Achieving stability by hand
I have not discovered a viable method for this yet, not one that can be used in a real game. Time usually settles them, to do it manually you would need to clone nine workers to nine patches and once those were mining, before they finished, clone the remaining 18 workers in pairs to the nine patches, or clone groups of three adding each to a patch by spam clicking to queue them. It may be possible to significantly reduce the time stability takes to attain by, once the workers are mining, taking 3 workers to a bad wander patch or patches and spam clicking them on it so they queue mine it, stabilising it for a bit. It does have interesting implications for macro in the BWAPI contest, if anyone is coding for this I'd love to work with you on breaking AI macro. There are other possibilities too, an idea suggested by IMPERVIOUS, where multiple adjacent patches could have one standby worker waiting to pick up the slack from three pairs of workers.
Reality
In a real game, of course, the above is unlikely to be viable. What is achieveable?
1. You have a useful yardstick, something that has been bugging me as a player- if there is no wander minerals are maxed out, you do not need more workers unless you're planning on a Maynard (and even then, I think the economics of this are questionable).
2. Harassment of workers really hurts, there is an invisible cost of 100-200 minerals per minute for up to five minutes on a saturated mineral line for harassment, although a lot of the time you will either have accidentally oversaturated, reducing this effect somewhat, or are playing many base, in which case the economics are likely to be sub-saturation.
3. You're probably messing up your workers every time you want to build something, again keeping them in a permanent state of wandering. For Protoss, for who this is most applicable, it is worth considering the following- use a builder probe and leave the miners alone. Use a natural probe to build as the natural settles down much more quickly than the main or finally: learn to take from and return your builder workers to an oversaturated ideal patch (3 workers). It is useful to know these ideal patches anyway as they give you an early boost by splitting to them at the beginning. Once a mineral line is stable you can put a probe anywhere on it and it will stay on that mineral so you could make a habit of using the furthest patch and oversatuating by one.
4. Don't do trivial worker transfers from saturated bases, either take a lot (5-6 plus) or none, it will cost you more than it gains unless the base is horrendously oversaturated.
5. Three workers per patch is the most you need, given the relative timings of naturals and the productive ability of multiple nexuses to make new probes going over this limit to transfer seems doubtful in effectiveness. I think this is the next thing I'll have a look at.
6. If you maintain your workers in the stable state for any length of time the mineral patches at a base will run out at a far more similar time than if it wanders all game when a few patches will have hundreds of minerals remaining. It's the same patches causing wandering and running out late.
If you are two base (main and natural), and I'm very interested to hear input from more experienced players on this as this is completely theoretical, I think the 2.5 worker saturation figure is likely to be complete nonsense. If you were to do a timing attack it would make sense, otherwise, if you're planning on further expansions or on 2 base economy you should continue worker production straight to 3x workers/patches. What is the necessary army food count in each match up? Does anyone saturate more than 2 bases? The worker count for 2 bases saturated seems to match up very well with 5 bases (roughly what seems to happen when both players P and T go for massive macro games) one worker per patch, a nice transition between what seem like the two ideals of economy- fastest gathering by saturation and greatest efficiency by one probe per patch.
If you are one base by 6 minutes game time (when you can have produced the necessary 30 workers for mineral and gas saturation, closer to 5 minutes on an 8 patch main, 12.6 seconds per worker) I think even my more extreme ideas of optimisation are worth following, at least a slight overproduction and then use a builder to avoid disrupting workers. This would boost your mineral income by almost 20%. You could even set the few workers you remove from ideal patches to distance mine, though the income from this is universally terrible, Heartbreak Ridge being the best I've found at around 24 minerals per min per worker from main to nat. 3-4 distance miners equals one ideal patch miner.
Holy Wall of Text, Batman. Just to make it clear I'm only a scrubby C- player and am not presenting this as a good guide to what really works in game, that would take comment from more experienced players. I do think the awareness of not disrupting your own workers when taking workers to build is useful and applicable when you're at higher worker counts, as is, for newer players like myself, the knowlege you can stop making workers when wander stops.
I've included a savegame of 6 o'clock Python saturation with the main and natural stabilised, it's a useful thing to have to see how removing and adding workers causes wander to return and how to optimize worker numbers.
http://www.filedropper.com/python6mainandnatstable3x
It's a trivial thing to create for yourself on any map- 3 times as many workers as patches and wait for them to settle down.