我目前使用很多Perl二进制哈希文件存储在多个文件位置,用于将数据加载到这个CGI网站中。我正在考虑如果我决定将我的数据存储在MySQL中,它是否会更快或更慢。
有什么见解吗?我知道Perl哈希完全加载到内存中。
Gordon
我目前使用很多Perl二进制哈希文件存储在多个文件位置,用于将数据加载到这个CGI网站中。我正在考虑如果我决定将我的数据存储在MySQL中,它是否会更快或更慢。
有什么见解吗?我知道Perl哈希完全加载到内存中。
Gordon
就速度而言,直接在内存哈希表中查找单个完全匹配的键是最好的方法,除非您的数据可以放入数组中(即,它将仅由一系列数字键访问,这些键形成从0开始的大多连续范围)。
如果您有多个可能需要搜索的键(例如,姓名和员工ID),或者如果您需要进行不严格基于相等性的搜索(例如,“查找所有姓氏为'Smith'的员工”),那么您将因需要搜索哈希键而显著减慢速度,此时使用数据库会更好。
另一个影响整体性能的因素是您提到的哈希表“存储在多个文件位置”。如果您只进行一次或少数几次查找,则从这些文件中将哈希表读入内存也需要时间,这再次倾向于使用数据库,后者将最小化从磁盘读取的不必要数据量。
因此,这在很大程度上取决于您需要如何访问数据以及您的访问模式。