mysql最大行数
1 背景作为在后端圈开车的多年老司机,是不是经常听到过,“mysql 单表最好不要超过2000w”,“单表超过2000w 就要考虑数据迁移了”,“你这个表数据都马上要到2000w 了,难怪查询速度慢”...
2024.11.15在做web项目时,经常需要查询出树形数据,比如国家-省-市-区,之前一直使用java的循环嵌套进行查询,但是多次与数据库交互,效率非常低下,于是在网上找到一种解决方法,把嵌套循环这一过程放在mysql中去处理,效率大大提高。
转载自:多级树形结构和sql查询实现
废话不多说,先上总的数据
现在我要查出所有河南省极其下属的数据,结果如下
效果不错吧,下面是该函数源码
delimiter /
drop FUNCTION IF EXISTS `mydb`.`getChild`/
CREATE FUNCTION `getChild`(rootId varchar(36))
RETURNS VARCHAR(1000)
BEGIN
declare ptemp VARCHAR(1000);
declare ctemp VARCHAR(1000);
SET ptemp = ‘#‘;
SET ctemp = rootId;
WHILE ctemp IS NOT NULL DO
SET ptemp = concat(ptemp, ‘,‘, ctemp);
select group_concat(id)
INTO ctemp
FROM t_tree_table
WHERE FIND_IN_SET(pid, ctemp) > 0;
END WHILE;
RETURN ptemp;
END;
123456789101112131415161718下面是查询语句,只要在getChild的参数中输入需要查询的父级id即可,
例如示例数据中的 河南 的 id 为 2.
select * from t_tree_table where find_in_set(id,getChild(2));
1若要拼接成树控件用的多层级的JSON数据,可以参考我另一篇博客
java+mysql递归拼接树形JSON列表
感慨:做java web开发也有两年之久了,渐渐没有刚进入工作岗位时那种求知欲了,渐渐习惯用既有的知识去处理问题,但是我用的方法、算法,真的是最高效的吗?难道就没有更好的解决办法?不,并不是,就像这个看似简单的树形结构,一直以来都是通过java中的循环去查询取值,一直也觉得非常麻烦而且没有效率,但是直到今天才学到这么简便高效的方法,真的是活到老、学到老,在计算机领域,我们永远都是什么都不懂的小屁孩吧。
1 背景作为在后端圈开车的多年老司机,是不是经常听到过,“mysql 单表最好不要超过2000w”,“单表超过2000w 就要考虑数据迁移了”,“你这个表数据都马上要到2000w 了,难怪查询速度慢”...
2024.11.15SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数请看下面的 "Products" 表:假如 "UnitsOnOrder" 是可选的,而且可以包含 NULL 值。我...
2024.11.15本篇文章会分析一个 sql 语句在 MySQL 中的执行流程,包括 sql 的查询在 MySQL 内部会怎么流转,sql 语句的更新是怎么完成的。在分析之前我会先带着你看看 MySQL 的基础架构,知...
2024.11.12mysql怎么查询某天的数据1、DATE_FORMAT函数WHERE(datediff(time,‘年-月-日‘)=DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。语法DATE_F...
2024.11.15mysqli_fetch_field_direct() 以对象返回结果集中单字段的元数据。mysqli_fetch_field() 以对象返回结果集中的下一个字段。mysqli_fetch_field...
2024.11.15