正在初始化一个巨大的数组(50000个条目)


Initializing a huge array (50000 entries)

我正在初始化一个由49605个key=>value对组成的巨大数组((该数组将永远不会更改($boardkey_to_values=数组(97031=>097531=>1409531=>2410031=>3410131=>4472031=>5472531=>6472631=>7472651=>7484531=>8485031=>9485151=>10485131=>10,…(

问题是这需要编译器花费大量时间(平均40ms(

我想知道它们是否能成为一个更快的解决方案。

我在我的程序中使用了一大部分密钥(15-35k(。我以前使用的MySQL有where_in,但它甚至更慢(平均6秒(,有人建议我对它进行硬编码,事实上,它要快得多,但我想对它进行更多的优化。请参阅原始文章字符串与值的比较优化MySQL查询

40ms对于这么大的数组来说并不是很慢。但是,如果这是在网络上,并且有多个人在调用PHP页面,这可能会降低服务器的速度。你有几个选择:

  • 在页面呈现后,使用多个Ajax调用来填充数组,即10000组每隔几秒钟(这样你就可以在页面上做其他事情阵列在自己的时间内填充(

  • 使用数据库,因为搜索/更新会更快,而不是将其存储在数组中。

  • 将程序逻辑更改为一次只使用几个值,而不是49K。(有点像分页,每页只显示数据的子集(