OK, I'm gonna post this, but remember the first rule of optimization: Don't!
What I mean is that most of the time, early optimization is a mistake. Pay attention to the obvious, low hanging fruit, but more importantly, pick the types that make the most sense for your data, and it's coherence. If you build an accounting system with floats instead of numerics (floats are much faster) you're making a mistake picking a faster type because it's not accurate enough for accounting due to rounding errors.
In general, the fastest field types are the ones that require the least amount of processing to get the job done.
Integers are usually the fastest types, and the smaller the faster, but it's not a huge difference. A lot of folks use tinyints (256 values) all over the place, but medium ints (16M) and ints (2😎 are not really much slower, and give you LOTS more room to grow. Bigints (2B*2B values) are almost never really needed, and are slower because most machines are still 32 bit, and moving around and doing math on 64 bit numbers takes a bit of work.
After that comes floats, which can hold very large values, but not necessarily with a lot of precision. I.e. rounding errors and such mean that they're not suitable for accounting.
Next comes exact numeric types. These types can be fairly large, like 100 or more characters long. You can store a number like 1239872138763837262349872349826342837464.3462398374629983724234 in one, and if you add 300.0004 you will get an answer of 1239872138763837262349872349826342837764.3466398374629983724234 back. Exact math like this costs in processing time, so they're noticeable slower than floating point. And they're too big for even bigints to handle properly.
Date types are a special case. In general, you're better off letting your data do the maths on dates IF it has the functionality to do so. Early MySQL (V3.23.xx) was a bit lacking in this department, versions 4.0 and up have gotten progressively better. No matter how slow your database may be at manipulating data, it's probably faster than doing it in PHP.
Text types are text types. They're usually all about the same performance wise, you just choose the type you need based on what you're doing with your data.