As said before, different type of MMO use different technologies. I used to work on the server part of a (yet to be released) MMO game; we described the technology a bit in the following video [1].
A few things to consider:
- the amount of information to be sent from the server grows quadratically with the number of clients (eg. if 100 players all 'see' each others, you naively would have to send 100*100 updates per server tick); the data received by each client only grows linearly, though
- obviously these are kept in memory, and persistent data is flushed if needed to a permanent storage
- one can reduce the quantity of information by:
+ distance: when a player (an object) is far away, it may get invisible (too far) or degraded (updated only every N ticks, low quality version of the assets sent/displayed)
+ number of entities around: when a lot of players are grouped closely (think a crowd), you can also degrade the information for those further away, even if they are close to the viewer in absolute value, since they are 'hidden' by others.
+ compression tricks: send deltas instead of absolute values for position (smaller numbers can be compressed more than larger ones), don't include the properties that did not change, etc.
- at some point, you (may) need to split the work on several servers, and have an efficient algorithm to split the game space, and synchronise your servers
[1] https://www.youtube.com/watch?v=QeZtqoydXpc