Mysql 获取海量数据的最佳方式

Mysql 获取海量数据的最佳方式,mysql,database,wordpress,Mysql,Database,Wordpress,首先让我描述一下我的情况: 我需要存储每个用户大约200个额外的详细信息。我正在使用wordpress。现在有一个默认函数来保存与用户关联的数据。但我不确定我应该用什么。在我的情况下,我需要在1页的一些数据。例如,我需要20个数据在一个页面和100个数据在另一个。用户可能需要一次20个数据或一次100个数据 我还没有设计我的数据库表。在理解了最好的查询方式之后,我将设计它。要获取用户的200个数据(字段),如果可以进行200个搜索查询,那么我将使用wordpress默认元表。结构如下所示 ---

首先让我描述一下我的情况:

我需要存储每个用户大约200个额外的详细信息。我正在使用wordpress。现在有一个默认函数来保存与用户关联的数据。但我不确定我应该用什么。在我的情况下,我需要在1页的一些数据。例如,我需要20个数据在一个页面和100个数据在另一个。用户可能需要一次20个数据或一次100个数据

我还没有设计我的数据库表。在理解了最好的查询方式之后,我将设计它。要获取用户的200个数据(字段),如果可以进行200个搜索查询,那么我将使用wordpress默认元表。结构如下所示

----------------------------------------------
| umeta_id | user_id | meta_key | meta_value |
----------------------------------------------
---------------------------------------------------------------
| User_ID | User_detail_1 | User_detail_2 | User_detail_3 | ...
---------------------------------------------------------------
从上面的结构可以看到wordpress将单个用户的每个数据保存为一行。所以在这种情况下,对于一个用户的200个数据,wordpress将保存200行。为了检索数据,我必须进行200次查询

现在,如果最好通过一个查询获取用户的所有数据并将其保存在会话中,那么我将创建自己的表。结构如下所示

----------------------------------------------
| umeta_id | user_id | meta_key | meta_value |
----------------------------------------------
---------------------------------------------------------------
| User_ID | User_detail_1 | User_detail_2 | User_detail_3 | ...
---------------------------------------------------------------
在上面的结构中,我可以将所有这200个数据保存在一行中,并可以在一个查询中获取所有数据,然后在需要时保存到会话和用户

现在在我的网站,我不需要在一个页面上的所有数据。在一个页面上,我可能需要100个数据,在另一个页面上,我可能需要50个数据。因此,考虑到我的情况,我是否应该将每个数据保存为一行(使用wordpress元表),然后对需要100个数据的页面进行100次查询,并在需要50个数据的页面进行50次查询


或者我应该使用一个查询并获取所有数据,保存在会话中,然后使用会话中的数据,其中需要50或100个数据。

您不需要200个查询来获取200个值

例如,如果在1个页面中,您需要获取键为“my_data_1”、“my_data_2”和“my_data_3”的3个字段,您可以在where条件下使用“或”在单个sql查询中获取所有字段

SELECT meta_key, meta_value from TABLE_NAME where meta_key='my_data_1' OR 
meta_key='my_data_2' OR meta_key='my_data_3';
这将在单个查询中返回单个结果表中的所有ur值:

------------------------
 meta_key | meta_value |
------------------------
my_data_1 | my_value_1
------------------------
my_data_2 | my_value_2
------------------------
my_data_3 | my_value_3
------------------------
然后您可以在应用程序中处理它们