登录 立即注册

找到11549个回复

老虎会游泳 10楼回复 无名啊用于解决树形结构存储的闭包表,凭什么能快速获取某个节点的祖先节点/父节点/子节点? (2022-10-26//)

@无名啊,我没有回答这些问题所需的知识。如果我真的拿到这样的数据,我只能选择进行实际测试。

无名啊 9楼回复 无名啊用于解决树形结构存储的闭包表,凭什么能快速获取某个节点的祖先节点/父节点/子节点? (2022-10-26//)

@老虎会游泳,那个博主给出新的解决方案了,速度上确实应该会很快,但空间占用也很恐怖。。

更改表结构和建立索引

那个博主新的表结构为:

CREATE TABLE 闭包表 (
    祖先 INT,
    后代 INT,
    距离 INT,
    PRIMARY KEY (后代, 距离),
    KEY (祖先, 距离)
);

使得有如下两种索引:

  • 聚集索引:(后代, 距离, 祖先)
  • 二级索引:(祖先, 距离, 后代)

就能高效应对下列查询了:

  • (孙)子/后代节点:走二级索引 (✔查询节点, ✔1 或 2 或 任意, ❓<要获取的后代节点>)
  • (祖)父/祖先节点:走聚集索引 (✔查询节点, ✔1 或 2 或 任意, ❓<要获取的祖先节点>)

下列查询会小范围扫表,但问题不大:

  • 某后代节点与某祖先节点的距离:走聚集索引 (✔查询后代节点, ❓<要获取的距离>, ❌查询祖先节点)

    只要 查询后代节点 层级没有深到离谱,扫表范围也就连续的几行几十行而已。

占的空间太大了,怀疑性价比

一个 66W 的 5 级地区表,就要配套一个相当于 780W 的闭包表,快接近 12 倍于主表的辅助表了。。

如此恐怖的空间换时间方案,到底能快多少呢?真的值得投入这么多空间来提速吗?

庸人 11楼回复 庸人大佬萌们,如何从JQ中取出数组赋值给变量 (2022-10-26//)
图2挂了,这里
IMG_20221026_091024.jpg(38.08 KB)
庸人 10楼回复 庸人大佬萌们,如何从JQ中取出数组赋值给变量 (2022-10-26//)
@无名啊,大佬能不能细说一下你上面的命令,命令不怎么熟有点看不懂,主要是我其实更习惯用管道这样的方式<<这样定向的方式我看不太懂IMG_20221026_090956.jpg(52.86 KB)

如上图,我输出所有数组能得到下图这样,当然加了个nl命令
(38.08 KB)

但是当我单拧出来一个数组,那么结尾就会有一个换行🤣🤣

IMG_20221026_092008.jpg(73.62 KB)
IMG_20221026_092036.jpg(40.66 KB)
庸人 9楼回复 庸人大佬萌们,如何从JQ中取出数组赋值给变量 (2022-10-25//)
@无名啊,没呢我闲着写的,用的git上的网易云音乐api,想写个实现本地化命令行的一些操作,读取本地json是不想一直都向api请求。哈哈🤣🤣
无名啊 8楼回复 庸人大佬萌们,如何从JQ中取出数组赋值给变量 (2022-10-25//)

@庸人,你的需求是要备份当下的网易云歌单吗?还是啥。。

庸人 7楼回复 庸人大佬萌们,如何从JQ中取出数组赋值给变量 (2022-10-25//)
@无名啊,其实就是将name→歌曲名和id又歌曲id放进两个数组变量里🤣。
因为我看jq就是按行输出的,所以想到有没有办法直接放进数组里而不用再去循环遍历一次。后面要用了就直接调用数组了
无名啊 6楼回复 庸人大佬萌们,如何从JQ中取出数组赋值给变量 (2022-10-25//)

@庸人,你说下原始需求,感觉会有更好的实现方式

庸人 5楼回复 庸人大佬萌们,如何从JQ中取出数组赋值给变量 (2022-10-25//)
@无名啊,感谢大佬么么,其实我用的就是bash,,只是很不熟,太菜了之前看到过这个不过我在termux终端测试输入没有高亮我以为不支持🤣🤣
无名啊 4楼回复 庸人大佬萌们,如何从JQ中取出数组赋值给变量 (2022-10-25//)

@庸人,比如:

$ readarray -td $'\0' arr < <(jq -rj '[.[].name] | join("\u0000")' <<<'[{"id": 1, "name": "a\nb\n"}, {"id": 2, "name": "c\nd"}]')
$ declare -p arr
declare -a arr=([0]=$'a\nb\n' [1]=$'c\nd')

如果你不担心你的 name 里有换行符的话,可以直接:

$ readarray -t arr < <(jq -r '.[].name' <<<'[{"id": 1, "name": "ab"}, {"id": 2, "name": "cd"}]')
$ declare -p arr
declare -a arr=([0]='ab' [1]='cd')
无名啊 3楼回复 庸人大佬萌们,如何从JQ中取出数组赋值给变量 (2022-10-25//)

@庸人,直接回答:可以用 Bashreadarray 来一次性读到某个数组

另外:

  1. Bash Shell 更适合交互式和简单脚本使用。含有数组、字典甚至更复杂数据结构的,可能都值得你考虑换其他语言了
  2. 不想换的话,考虑尽量用 jq 来一次性生成你最终要的数据?
庸人 2楼回复 庸人大佬萌们,如何从JQ中取出数组赋值给变量 (2022-10-25//)
@无名啊,格式就是这样(图下),我主要取出元素playlist下面的所有name元素数组(.playlist[].name),然后有没有办法直接将其结果赋给脚本内变量数组(不想每次都调用),我下图用的循环取出方法,有没有更简单的
Screenshot_2022-10-25-20-08-20-146_bin.mt.plus.jpg(562.67 KB)Screenshot_2022-10-25-19-59-39-914_bin.mt.plus.jpg(535.46 KB)
老虎会游泳 6楼回复 童真再见c盘里有个乱码文件夹,是病毒还是哪个软件的? (2022-10-25//)

@童真再见,最常见的原因是压缩包解压时乱码。当然也可能是程序创建中文文件夹名时乱码。

童真再见 5楼回复 童真再见c盘里有个乱码文件夹,是病毒还是哪个软件的? (2022-10-25//)

@无名啊,我替换文件时发现的
手机

无名啊 4楼回复 童真再见c盘里有个乱码文件夹,是病毒还是哪个软件的? (2022-10-25//)

@童真再见@tasy5kg,你们都是咋找到这种文件(夹)的?我打开 Everything 都不知道搜点什么关键词。。

童真再见 3楼回复 童真再见c盘里有个乱码文件夹,是病毒还是哪个软件的? (2022-10-25//)

@tasy5kg@怒放家族de霖,百度搜里面的文件名字是谷歌浏览器的,但是它为啥起这种名字?跟病毒乱码了一样
手机

凡焰 9楼回复 凡焰求推荐blog程序 (2022-10-25//)
@TabKey9,那个估计不行,我这个就只发图片,再做个人物介绍一类的,现在再测试typecho,还不错
怒放家族de霖 2楼回复 童真再见c盘里有个乱码文件夹,是病毒还是哪个软件的? (2022-10-25//)

看路径,有点像谷歌浏览器的(用户)设置数据及缓存文件夹。但又没挂在谷歌的目录里,怪
虎友高配版(绿色)

tasy5kg 1楼回复 童真再见c盘里有个乱码文件夹,是病毒还是哪个软件的? (2022-10-25//)
Screenshot_2022-10-25-13-14-39-802_com.google.android.documentsui-edit.jpg(33.18 KB)

我手机里也有类似的文件名,不知道是什么
虎老会泳游 4楼回复 虎老会泳游第一次遇到这情况 (2022-10-25//)
@晨曦,没有,年中才续费上
下一页 上一页 (319 / 578页)

11月14日 01:15 星期五

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1