2016-07-24 59 views
1

我有一个二维数组有几个子数组(约30个,子数组有10个元素)。 我需要从数组中获得相当频繁的基本数据,我有一个函数可以在我的脚本中返回它的内容(或部分内容)。该函数的样子:PHP包括数组与MySQL查询:好主意?

function get_my_data($index = false){ 
$sub0 = array(
    'something' => 'something', 
    'something else' => 'else', 
    ... 
    ); 
$sub1 = array(
    'something' => 'something different', 
    'something else' => 'else different', 
    ... 
    ); 
... 
$sub30 = array(
    'something' => 'something 30 times different', 
    'something else' => 'else 30 times different', 
    ... 
    ); 
$data = array($sub0,$sub1,$sub2,...,$sub30); 
if($index !== false) 
return $data[$index]; 
else 
return $data; 
?> 

然后我把它用,包括:

<?php 
include 'my_data.php'; 
$id = $_GET['id']; 
$mydata = get_my_data($id); 
... 
?> 

我做这个,因为当我开始这个项目时,我没有想到我将有更多的那10个子阵列,而我也不需要它具有动态性。实际上,现在我必须添加一个动态列(对子数组的索引),在这种情况下使用数组声明并不是一个好主意。我立即想到使用数据库,传输数据并不困难,但如果我这样做,那么我需要改变我的功能get_my_data并在其中插入一个查询,因此,因为它被称为很多次,我会有很多的查询,几乎每个我的网站脚本都有它的一个。我认为性能会更差(因为mysql已经在我的网站中大量使用)。动态数据不会太频繁地改变(客户端这样做)。

我必须解决这个问题的思路是:

  • 保存所有的数据在数据库,并通过MySQL的查询得到它,
  • 休假PHP端,并使用文件管理动态数据,
  • 在PHP端留下静态部分,在mysql数据库中添加一个逻辑连接器(如'id'索引在子数组中)和id列,并获得mysql上的动态数据

我不想失去很多perfo爱情,你有没有任何建议或建议?

回答

0

把这样的数据放在代码中是最糟糕的计划。你不仅创建了一大堆垃圾,而且几乎全部扔掉了垃圾,但是如果这些垃圾发生变化,这是一场噩梦。编辑源代码,将其检入到版本控制中,并对其进行部署是很多工作,以便对某些数据进行简单更改。

至少在数据格式(如JSON,YAML或XML)中存储此内容,以便您可以按需阅读并根据需要更改纯数据文件。

理想情况下,您可以将其放入数据库并在必要时进行查询。数据库旨在存储,更新和保存这样的数据。

你也可以在数据库中存储JSON,MySQL 5.7甚至有一个本机列类型,这使得这种事情更容易。