3 ms·
So if you're running a server with 32GB of RAM and your entire database is 4GB, why can't the whole database just be kept in memory and be done with it? I don'
by tocomment 18y ago
So if you're running a server with 32GB of RAM and your entire database is 4GB, why can't the whole database just be kept in memory and be done with it?
I don't see an obvious way to do this in MySQL at least and it certainly doesn't do it automatically.
- wayne 18y agoIt essentially will be after everything's paged in. If you want to be sure though, create a RAM disk and stick your data files on there, though then you need to deal with system crashes on your own.
- thwarted 18y agoI wonder how creating a raid1 device composed of a real block device and a ram disk would serve in this regard. Has anyone tested this?
- ars 18y agoIt would be pointless. Just let linux cache the data and don't worry about it. If you must, cat all your database tables to null (i.e. read all the data in them) a few times, then you'll be sure they are in memory. If you used a ramdisk you'll be paying double: once for the data, and again for the cache.
- thwarted 18y agoRaid1 idea was a suggestion of how to deal with system crashes, not to populate the buffer cache.
- ars 18y agoIt is in memory, only it's linux that does it and not mysql. You can also create a memory table in mysql if you don't need the data stored permanently.
- acro 18y agoIf your application is only reading data then it is fairly easy to scale well. Most real world applications also update data, and when updating data it must be written to permanent storage. I would argue the real scalability problems are created by the writes, not the reads.