问题标签 [virtual-column]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
243 浏览

mysql - MySQL:优化格式化日期的左连接

我正在尝试优化此查询的速度:

v.visit_date 是 DATETIME 类型,t.t_date 是格式为 '%Y-%m-%d' 的字符串。简单地在 v.visitdate 上创建索引并没有提高速度。因此,我打算尝试@oysteing 在这里给出的解决方案: How to optimize mysql group by with DATE_FORMAT 我成功地通过此 SQL 创建了一个虚拟列 ALTER TABLE visits ADD COLUMN datestr varchar(10) AS (DATE_FORMAT(visit_date, '%Y-%m-%d')) VIRTUAL; 但是当我尝试在此列上创建索引时, CREATE INDEX idx_visit_date on visits(datestr)我收到此错误:

#1901 - 函数或表达式 'date_format()' 不能在 GENERATED ALWAYS AS 子句中使用datestr

我究竟做错了什么?我的数据库是 Maria DB 10.4.8

最好的问候 - 乌尔里希

0 投票
0 回答
92 浏览

sql - Oracle 基于函数的索引与基于虚拟列的索引性能

我有一个有 25 亿行的生产表。它有一个列“created_date”,其中包含日期和时间组件。该表未分区。我必须根据“created_date”值导出 2 个月的数据。我的选择是(1)在列上创建基于函数的索引“TRUNC(created_date)”;或者,(2)创建一个虚拟列作为“TRUNC(created_date)”,然后索引该虚拟列。然后我使用该索引在该表上运行基于查询的 expdp。

由于我无法测试哪种方法更好(甚至会稍微好一点,因为它是一个没有停机时间的生产表),有没有人对这个问题有任何建议?我的假设是拥有一个虚拟列不会在每次向该表中插入一行时都会导致索引计算操作(每天大约 700 万新行),这对于基于函数的索引肯定会发生。有什么建议吗?另外,有没有人知道创建这样一个索引(在 25 亿行上)可能需要多长时间?

0 投票
1 回答
126 浏览

json - 创建虚拟列和索引以优化 JSON 列中数组的过滤器

这是有关如何在不使用 OpenJson 且仅使用 Json_Value 的情况下优化 json 列的 microsoft 文档: https ://docs.microsoft.com/en-us/sql/relational-databases/json/index-json-data?view =sql-server-ver15

我的问题是我有一个 JSON 列,其中包含一个数组,我试图从数组中的每个元素中获取所有名为 Test_ID 的键,以与连接语句 testId 进行比较,虽然它有效,但它相对较慢。400 行大约需要 9 秒。我正在尝试以指数方式加快速度,似乎唯一的方法是通过该文章中提到的索引,但我似乎无法弄清楚如何为数组执行此操作。

我的 JSON 与此类似:'{"Property":{"Label":"0"},"Tests":[{"Test_ID":"GUID_HERE","Type":{"Label":" "},"Name":{"Label":" "},"Value":null,{"Test_ID":"GUID_HERE","Type":{"Label":" "},"Name":{"Label":" "},"Value":" "}]}'

这是我的擦洗查询

0 投票
3 回答
139 浏览

snowflake-cloud-data-platform - 确定雪花中的列是否为虚拟列

Snowflake 没有记录其使用 AS 子句的虚拟列功能。我正在进行迁移,需要以编程方式过滤掉虚拟列。

有什么方法可以识别列是虚拟的吗?该Information Schema.COLLUMNS视图显示虚拟列定义和非虚拟列定义之间没有什么不同。

0 投票
0 回答
32 浏览

php - 制作一个棘手的mysql虚拟列

我正在尝试使用 mysql 虚拟列功能来实现搜索机制,其中我的预订号码可能是像 101 这样的实整数或像 A101、B101 等的字母数字。

所以我确实需要建立一个搜索机制,用户将输入 101,我将获取所有带有 101 的预订,这肯定是一个预订,但我也会获取所有带有 A101 、 B101 等字符的预订,希望你明白这一点。

我使用带有 json 的虚拟列,它们非常有效,如下所示。

在这里提取 json 值并将其分配给我的新虚拟列

现在我需要做同样的步骤,但有另一个逻辑

我想摆脱数字列值中的所有字符,将其全部剥离,只留下整数分配给我的 number_vc 新列,所以当我的迁移成功执行时,我将得到以下结果

ID 数字 number_vc(新的虚拟列)
1 101 101
2 A101 101
3 B101 101

所以我错过了 As (在我的声明中转换)所以任何帮助将不胜感激!