2016 - 2024

感恩一路有你

一句sql实现mysql递归查询 mysql怎么实现递归查询数据?

浏览量:1502 时间:2021-03-15 17:21:16 作者:admin

mysql怎么实现递归查询数据?

mysql> create table treeNodes-> (-> id int primary key,-> nodename varchar(20),-> pid int-> )Query OK, 0 rows affected (0.09 sec)mysql> select * from treenodes ---- ---------- ------ | id | nodename | pid | ---- ---------- ------ |

1 | A | 0 ||

2 | B | 1 ||

3 | C | 1 ||

4 | D | 2 ||

5 | E | 2 ||

6 | F | 3 ||

7 | G | 6 ||

8 | H | 0 ||

9 | I | 8 ||

10 | J | 8 ||

11 | K | 8 ||

12 | L | 9 ||

13 | M | 9 ||

14 | N | 12 ||

15 | O | 12 ||

16 | P | 15 ||

17 | Q | 15 | ---- ---------- ------ 17 rows in set (0.00 sec)

mysql怎么实现递归查询?

mysql的逆袭:如何做递归层次查询 最近在做一个从oracle数据库到mysql数据库的移植,遇到一个这样的问题 在Oracle中我们知道有一个HierarchicalQueries通过CONNECTBY我们可以方便的查了所有当前节点下的所有子节点。但shi,在MySQL的目前版本中还没有对应的函数!!! 换句话来说,想要用mysql实现递归查询,根本做不到!!! 可是经过我数天茶不思饭不想的刻苦琢磨,终于想到了一个合理的,适用于mysql和其他sql的解决方案。 方案一出,就秋风扫落叶之势,席卷整个dao层~~~所到之处,所有问题迎刃而解,让所有问题都不再为问题都成为了我这个函数的炮灰而已。

mysql表数据量太大,达到了1亿多条数据,除了分库分表之外,还有没有其他的解决方式?

mysql在常规配置下,一般只能承受2000万的数据量(同时读写,且表中有大文本字段,单台服务器)。现在超过1亿,并不断增加的情况下,建议如下处理:

1 分表。可以按时间,或按一定的规则拆分,做到查询某一条数据库,尽量在一个子表中即可。这是最有效的方法

2 读写分离。尤其是写入,放在新表中,定期进行同步。如果其中记录不断有update,最好将写的数据放在 redis中,定期同步

3 表的大文本字段分离出来,成为独立的新表。大文本字段,可以使用NOSQL数据库

4 优化架构,或优化SQL查询,避免联表查询,尽量不要用count(*), in,递归等消耗性能的语句

5 用内存缓存,或在前端读的时候,增加缓存数据库。重复读取时,直接从缓存中读取。

上面是低成本的管理方法,基本几台服务器即可搞定,但是管理起来麻烦一些。


当然,如果整体数据量特别大的话,也不在乎投入费用的话,用集群吧,用TIDB吧

mysql递归查询,不用存储过程?

with a as(select * from table1 where parentid=0union allselect b.* from a,table1 b where a.id=b.parentid)select * from a用with as 来实现递归

一句sql实现mysql递归查询 mysql递归查询子节点 mysql 递归查询树形结构

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。