Music generally is composed with a certain tempo, or BPM. In electronic music there is usually a static tempo, so it never actually changes. In live music, human error forces the BPM to vary slightly, making it incredibly difficult to correctly import it into a rhythm game like osu.
However, BPM does not necessarily mean the same thing as tempo. BPM is literally Beats Per Minute.
You can read up more on tempo here, if you want to. The basic part of tempo though is that it describes not only how fast the song should be played, but the feeling or mood of the song. The wikipedia article mentions the difference between "allegro" and "presto" as allegro comes with the connotation of "joy", whereas presto just means fast.
Happy! Lucky! Dochy! is BPM 235
t/16868]Mei[/url] is BPM 200, but is clearly faster. The melody in mei is very fast, whereas the melody in happy lucky dochy is essentialy halftimed.
As for the difficulty difference you're noticing in the song, especially the approach rate, this is all due to the difficulty settings.
Very low BPM songs are usually either very difficult or just slow. Very high BPM songs usually play as if they were half timed. Around 130 to 200 BPM is where most songs fall for osu, though many songs are much slower. Few songs are truly faster than that. Speedcore is kind of silly in that regard. You can also define a "beat" differently. In time signature 6/8 it's common to either count each eighth note as a beat, or each dotted eighth note as a beat, so it's either 6 beats to a measure or 2 beats to a measure.