Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>RAID5 :</p> <p>It is great for reads, for writing lots of big data, and for cost. It sucks for small sandom writes.</p> <p>Since you probably do not use your DB to store ONLY big blobs, you do also some database writing / updating / inserting, RAID5 is going to be a real PITA.</p> <ul> <li>You INSERT or UPDATE a row in a table. -> a page in the table needs to be written -> for each index, at least one index page needs to be updated -> at commit, the log needs to be written, flushed to disk, and synced.</li> </ul> <p>Each of those small 1 page (8kB) writes is smaller than your RAID5 stripe size, so the RAID controller will need to seek several (or all) of your RAID disks, read several stripes, and re-write the updated stripe and parity. For syncing, you gotta wait for ALL disks to sync, during which time they are not servicing any other requests... some RAID controllers are also particularly bad at doing this fast, it depends on your hardware.</p> <p>-> for high random write throughput, it is a good idea to use RAID 1 (or 10 or 01) for data, and an extra RAID1 volume for the log on 2 separate disks.</p> <p>So, if you have 3 disks in your RAID5, remove one, put data on a disk and log on the other, and benchmark. If it is good, put in an extra disk, and make 2x RAID1 volumes (log, data).</p> <p>If your load was read-heavy instead of write-heavy, for the same budget (number of disks) it would be better to put the log on the same volume as the data and RAID10 it all.</p> <hr> <blockquote> <p>The reason why I needed to store BLOB in the DB is because my application requires me to search for these BLOBs in real-time.</p> </blockquote> <p>You put BLOBs in the database if you want to use stuff that the database does well (like transactions, security, or putting everything in 1 server available from anywhere, coherent backups, no headaches, etc).</p> <p>If you want to do searches, you are not using the BLOBs for searching, you are using simple database tables and SQL queries to obtain the reference to the BLOB you want. Then, you get the BLOB, but you could as easily get a filesystem file instead. So, in your application, you could also probably use filesystem files instead, which would be a lot faster.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload