我在每个mysql表中都有多个子查询的情况。当大型数据库表时,我不知道这个概念是好还是坏。请建议。这里我有mysql函数在select语句本身运行子查询。
这是mysql函数GET_DEFAULT_VAL
DELIMITER $$
CREATE DEFINER=`root`@`localhost` FUNCTION `GET_DEFAULT_VAL`(
x text
) RETURNS text
DETERMINISTIC
BEGIN
DECLARE columnList TEXT;
SET group_concat_max_len = 65533;
SELECT GROUP_CONCAT(`default_value` SEPARATOR ',')
FROM `field_default_values` where find_in_set(`id`,x)
INTO columnList;
RETURN columnList;
END$$
这里是field_default_values表
------------------------------------
id | multi_option_clm
------------------------------------
1 option1
2 option2
3 option3
4 option4
这是select语句
select id , multi_option_clm from table1;
------------------------------------
id | multi_option_clm
------------------------------------
1 1,2
2 2,3,4
select id, GET_DEFAULT_VAL(`multi_option_clm`) from table1;
我将结果显示为
------------------------------------
id | multi_option_clm
------------------------------------
1 option1,option2
2 option2,option3,option4
大型数据库表会导致性能问题吗?