小编vin*_*eth的帖子

嵌套加入vs合并加入vs加入加入PSQL

我知道怎么回事

  1. 嵌套加入
  2. 合并加入
  3. 哈希加入

工作及其功能.

我想知道在Postgres中使用这些连接的情况

postgresql sql-execution-plan

20
推荐指数
1
解决办法
4876
查看次数

仅在提交时验证 vuetify 文本字段

temp.vue

<v-form ref="entryForm" @submit.prevent="save">
  <v-text-field label="Amount" :rules="numberRule"r></v-text-field>
  <v-btn type="submit">Save</v-btn>
</v-form>

<script>
export default {

   data: () => ({
     numberRule: [
       v => !!v || 'Field is required',
       v => /^\d+$/.test(v) || 'Must be a number',
     ],
   }),

   methods: save () {
     if (this.$refs.entryForm.validate()){
       //other codes
     }
   }
}
</script>
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

这里发生的事情是在文本字段本身中键入时,规则会被执行。我只想在提交时执行规则。如何在 vuetify 文本字段中做到这一点?

vue.js vuejs2 vuetify.js

11
推荐指数
2
解决办法
1万
查看次数

建议查询优化工具的计划

有时我可以使用强制索引选项在查询上使用特定索引来加快查询速度.

然后经过一段时间后,该表中的数据可能会发生变化.我使用的力索引可能不是该查询的正确索引搜索.

我的问题是

  • 无论如何,建议查询优化器在其计划生成期间使用强制索引作为可能的选项.如果使用强制索引是一个缓慢的计划,那么它可以使用正常的查询计划.

  • 或者否则无论如何都要编辑MySql/PSQL代码以建议Optimiser在其计划生成期间使用强制索引作为可能的选项.

附加信息:我想将我的计划添加到优化器计划列表中(Optimiser已经为查询创建了许多计划).因此,在为查询选择最佳计划时,我希望优化人员也考虑我的计划.如果这种方式可行,那么优化器不需要每次都考虑强制索引.它可以将力指数作为计划生成的可能选项

据我所知,我试图明确提出这个问题.如果有人无法理解您的查询评论.

mysql database postgresql innodb psql

10
推荐指数
5
解决办法
298
查看次数

数据适合行时的VARCHAR vs TEXT性能

mysql> desc temp1;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| value | varchar(255) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+

mysql> desc temp2;
+-------+------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------+------+-----+---------+-------+
| value | text | YES  |     | NULL    |       |
+-------+------+------+-----+---------+-------+
Run Code Online (Sandbox Code Playgroud)

255-每行中有一个“ a”字符(在两个表中)

mysql> select * from temp1 limit 1;
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| value                                                                                                                                                                                                                                                           |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

mysql> select …
Run Code Online (Sandbox Code Playgroud)

mysql database performance innodb mysql-5.7

9
推荐指数
1
解决办法
343
查看次数

MySQL 优化器 - 成本规划器不知道 DuplicateWeedout 策略何时创建磁盘表

这是我的示例查询

Select table1.id 
from table1 
where table.id in (select table2.id 
                    from table2 
                    where table2.id in (select table3.id 
                                        from table3)
                    ) 
order by table1.id  
limit 100
Run Code Online (Sandbox Code Playgroud)

在检查上述查询的优化器跟踪时。优化器跟踪成本

  1. DUPLICATE-WEEDOUT 策略 - 成本:1.08e7
  2. FIRST MATCH 策略 - 成本:1.85e7

由于 DUPLICATE-WEEDOUT 成本较低,mysql 对上述查询采取了 DUPLICATE-WEEDOUT 策略。

join_optimization 部分似乎一切都很好。但最后,在检查了 join_execution 部分之后。DUPLICATE-WEEDOUT 通常会创建临时表。但是这里由于堆大小不足以容纳临时表,它继续创建磁盘临时表(converting_tmp_table_to_ondisk)。

由于磁盘临时表,我的查询执行变慢了。


那么这里发生了什么?

优化器跟踪不计算连接优化部分本身的磁盘表成本。如果计算磁盘表成本,它将高于第一次匹配。那么 final_semijoin_strategy 将是 FIRST-MAT​​CH 策略,这样我的查询会更快。

MYSQL 有什么方法可以计算连接优化部分本身的磁盘表成本或针对此特定问题的任何其他解决方法吗?

MYSQ-5.7, INNODB


注意:这是一个非常动态的查询,其中多个条件将根据查询中的请求添加。所以我已经以所有可能的方式优化了查询。最后还是解决了这个磁盘表成本问题。请避免优化查询(如更改查询结构、强制优先匹配策略)。并且为了增加堆大小(我不太确定,在不同的论坛中很多人说它可能会在其他查询中带来不同的问题)

mysql sql innodb sql-execution-plan

6
推荐指数
1
解决办法
158
查看次数

如何获取大表的计数?

样本表:

+----+-------+-------+-------+-------+-------+---------------+
| id | col1  | col2  | col3  | col4  | col5  | modifiedTime  |
+----+-------+-------+-------+-------+-------+---------------+
|  1 | temp1 | temp2 | temp3 | temp4 | temp5 | 1554459626708 |
+----+-------+-------+-------+-------+-------+---------------+ 
Run Code Online (Sandbox Code Playgroud)

上表有5000万条记录

  1. (col1、col2、col3、col4、col5 这些是 VARCHAR 列)
  2. (id为PK)
  3. (修改时间)

每列都有索引

例如:我的网站中有两个选项卡。

FirstTab - 我使用以下条件打印上表的计数 [col1 如“value1%”,col2 如“value2%”]

SeocndTab - 我使用以下条件打印上表的计数 [col3 like“value3%”]


由于我有 5000 万条记录,因此按照这些标准进行计数需要很长时间才能得到结果。

注意:我有时会更改记录数据(表中的行)。插入新行。删除不需要的记录。

我需要一个可行的解决方案,而不是查询整个表。例如:就像缓存旧计数一样。这样的事有可能吗?

mysql sql database postgresql performance

5
推荐指数
1
解决办法
4753
查看次数

删除和插入会为键 PRIMARY 抛出重复条目

我有一个复合 PK,我需要在其中更新其 PK 值之一。但是由于一些内部问题,我无法向 PK 列发出更新查询。

所以我正在触发DELETEINSERT查询。

DELETEINSERT是内完成TRANSACTION(READ提交)。

但有时,当两个请求确实更新到同一行时。OnPRIMARY引发关键错误的重复条目。这是随机发生的,我在本地重现此问题时尝试了很多,但找不到根本原因。

注意:由于一些内部限制,我无法尝试以下内容。

  1. 将查询更新为 PK
  2. 替换查询
  3. 插入重复或插入忽略查询
  4. 当前为此表添加运行 ID 将是一次巨大的迁移。

请帮我解决这个问题。

更新:

示例表结构:

       Table: temp
Create Table: CREATE TABLE `temp` (
  `id1` int(11) NOT NULL,
  `id2` int(11) NOT NULL,
  `id3` int(11) NOT NULL,
  `value` int(11) DEFAULT NULL,
  PRIMARY KEY (`id1`,`id2`,`id3`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

样本数据:

+-----+-----+-----+-------+
| id1 | id2 | id3 | value | …
Run Code Online (Sandbox Code Playgroud)

mysql database innodb mysql-5.7

5
推荐指数
1
解决办法
1810
查看次数

Mysql的页面外是什么?

文本二进制大对象数据类型列在InnoDB引擎使用。该字段中存储的值存储在页面外而不存储在页面中(Innodb页面的默认大小为16kb)。

我的问题是1.离页是什么意思?2.从页外获取值时如何访问它?

mysql sql database innodb

4
推荐指数
2
解决办法
523
查看次数

Wild Card Before and After a String - MySql, PSQL

我需要Contains在列中执行操作。对于包含操作,我们需要在单词前后使用通配符。

例如:个性化

查询 -> like '%sonal%'

因为这种类型的查询不能使用索引。有什么办法可以提高搜索速度。

注意:我使用MySql(InnoDB)和PSQL

mysql database postgresql innodb psql

4
推荐指数
1
解决办法
707
查看次数

Firestore 按字段分组

下面是我的 firestore 集合结构

在此处输入图片说明

我的vue获取数据的方法

fetchResults(){
  db.collection('data').onSnapshot((querySnapShot)=>{
    let results = [];
    querySnapShot.forEach(doc=>{
      results.push(doc.data())
    })
    this.record=results;
  })
}
Run Code Online (Sandbox Code Playgroud)

我想要的是在文档中查询group by ID and order by sec_id desc.

我怎么想这样查询?

这样我就会得到按 ID 字段分组的文档。

firebase vue.js vuetify.js google-cloud-firestore

2
推荐指数
1
解决办法
5846
查看次数