Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 执行运行时查询与在数据库中存储结果_Mysql_Database_Database Performance - Fatal编程技术网

Mysql 执行运行时查询与在数据库中存储结果

Mysql 执行运行时查询与在数据库中存储结果,mysql,database,database-performance,Mysql,Database,Database Performance,我正在处理非常大的数据库。由于隐私政策,我无法编写原始模式,但我可以给出一个类似的示例 范例 假设我有一个产品表。这是主桌。它有很多细节,我为这些细节创建了其他表格,比如product_detail_1 product_detail_2 product_detail_3多达10个。这些详细信息表包含许多不同的值 现在,所有这些表都有一个外键,它引用产品表中的主键。因此,如果我想要任何特定的数据,那么一旦我有了密钥,就很容易检索到 现在我的问题是,如果我想显示基于特定细节的结果,那么我应该遵循哪种

我正在处理非常大的数据库。由于隐私政策,我无法编写原始模式,但我可以给出一个类似的示例

范例 假设我有一个产品表。这是主桌。它有很多细节,我为这些细节创建了其他表格,比如product_detail_1 product_detail_2 product_detail_3多达10个。这些详细信息表包含许多不同的值

现在,所有这些表都有一个外键,它引用产品表中的主键。因此,如果我想要任何特定的数据,那么一旦我有了密钥,就很容易检索到

现在我的问题是,如果我想显示基于特定细节的结果,那么我应该遵循哪种方法

方法1: 每次我想搜索时都会运行查询。 在这种情况下,查询将太长,因为查询可能在不同的详细信息表上包含4到7个where子句,因此需要一些时间才能执行

方法2: 我将每个搜索查询的结果存储在一个新表中。 这种技术的好处是 -如果再次执行相同的查询,则结果已经可用,因此不会花费太多时间。 所以,若我将查询结果存储在一个具有文本数据类型列的表中,列中的长度有任何限制吗

还是我应该尝试方法1?
我正在使用mysql数据库

您的第二种方法是缓存。这已经在许多级别上得到处理:磁盘缓存、RAM、数据库缓存。。。除非有可靠的统计数据表明存在缓存问题,否则我建议您不要尝试重写另一个手动缓存。您是否存在实际性能问题。您最好解决您可能遇到的任何具体的实际性能问题。@Nick.McDermaid是的,性能是问题所在。根据查询的复杂性,执行查询需要1到7秒。所以,若我使用方法2,那个么我对文本数据类型列有任何限制吗?我建议你们在开发自己的缓存系统之前,先研究索引、RAM和其他数据库改进,对方法1计时了吗?这是人们通常做的事。方法2是复制查询缓存可以免费提供给您的内容。