AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-129987

user3198603's questions

Martin Hope
user3198603
Asked: 2021-02-20 06:36:55 +0800 CST

MySQL QPS 调试?

  • 0

我在 zabbix 仪表板上每隔 5 分钟在我的数据库服务器上看到 5 Kqps。但是在该时间间隔内所有最大查询(删除/选择/插入/更新/替换)的总和为 1300。不确定如何显示最大 5kqps,但所有最大查询的总和为 1300?我的目标是找到哪个特定的 DML(插入/更新/选择/删除)在这里导致高 QPS 并从这里获得一些方向?另一点是要了解除了这些 DML 之外,还有什么其他因素会导致高 QPS,这样我就可以朝着正确的方向前进。我有点困惑,为什么 Max QPS 可能是一些单独的 DML QPS,或者我在这里遗漏了什么?

期间的 IOPS 也显示 1Kops,如果每个查询甚至都在命中磁盘,它不应该接近 5Kops 吗?差距在哪里?

mysql myisam
  • 2 个回答
  • 163 Views
Martin Hope
user3198603
Asked: 2020-02-16 22:14:01 +0800 CST

MySQL如何在内部存储行数据?

  • 0

RDBMS 是否将行数据一个接一个地存储在一个数据块中?一旦数据块已满,分配的新块是否连续?

根据我的理解,当创建表时,DBMS 供应商必须保留一些为表保留的连续块。一旦该块块已满,则必须将另一组连续块分配给该表。不是吗?它将帮助 DBMS 有效地读取范围扫描。

所以在我看来,第一个问题的答案肯定是肯定的。对于第二个问题,在它有可用块之前是肯定的。

我从 Oracle 那里得到了一些想法,这或多或少与我的理解相似

mysql innodb
  • 1 个回答
  • 950 Views
Martin Hope
user3198603
Asked: 2019-08-03 18:43:40 +0800 CST

如何维护跨表列的唯一顺序?

  • 0

我有两个表已注册的产品和未注册的产品。两者都有自动增量主键,可以重叠,如果 100 个 id 存在 reg 表,它也可以存在于 unreg 表中。插入可以来自应用程序中的许多地方

第三种服务需要两种类型的产品的唯一 ID。

在 oracle 中,我可以在每个表中再引入一列。创建一个序列。现在可以在两个表上创建触发器 before_insert ,这样每当任何表中有插入时,trigerr 都会从序列中获取 next_val 并插入到新列中。这样我可以确保跨表列的唯一编号。

我不确定如何在 mysql 中实现相同的效果,因为有触发器但没有可以跨表使用的序列?

mysql innodb
  • 3 个回答
  • 253 Views
Martin Hope
user3198603
Asked: 2019-05-13 00:17:56 +0800 CST

MySQL块读取时间?

  • 0

我的理解是即使我需要读取单个记录select name from customer where id=1,我也需要在内存中读取完整的特定块(可以从列 ID 的索引中找到块地址)。然后 MySQL 遍历该块上的所有记录以找到该特定记录。那是对的吗 ?

我相信 MySQL 在磁盘上写入的默认块大小为 16KB(来自谷歌)。同样从谷歌上的不同来源我了解到从磁盘(HDD)读取 100MB 数据的平均时间约为 1 秒。这意味着读取块的平均寻道时间应约为 16/(100* 1000) 秒。正确的 ?

mysql rdbms
  • 1 个回答
  • 192 Views
Martin Hope
user3198603
Asked: 2019-05-04 02:18:37 +0800 CST

每个表的磁盘块?

  • 0
  1. 在 T1,插入来自 table_1,转到磁盘 block_1。
  2. 在 T2,插入表_2,它可以转到同一个磁盘 block_1(前提是 block_1 有空间)还是将为每个表创建新块?
  3. 在 T3 处,table_1 再次插入,是否可以根据可用空间进入 block_1 或 block_2?
mysql rdbms
  • 1 个回答
  • 42 Views
Martin Hope
user3198603
Asked: 2018-08-05 22:54:37 +0800 CST

在外键列上创建索引?

  • 2

我有下表结构,一个部门可以有很多员工。

Department
    id
    dept_name
    ...

Employee
   id
   emp_name
   dept_id(foreign key to department table)
   ....

考虑一下我有 30 个部门,每个部门都有 10k 条记录。

现在我在查询下面开火

select * from department dept, Employee emp where emp.dept_id=dept.id and dept.id=10;

我的问题是在表 Employee 的外键列 dept_id 上创建索引有什么好处吗?

根据我的理解,在列 dept_id 上创建索引应该有好处,因为没有索引 DBMS 必须扫描 Employee 表的所有记录才能找到 dept_id=10。如果有索引,那么它可以在非聚集索引的帮助下快速找到dept_id=10的记录范围。

oracle index
  • 1 个回答
  • 2993 Views
Martin Hope
user3198603
Asked: 2018-07-25 10:04:57 +0800 CST

主表或补充表中的外键?

  • 1

我有两个具有一对一关系的表 b/w student 和 Student_detail(一种补充表)表

设计一

Student
 student_id
 name
 ....

学生详情

 student_detail_id
  student_id(foreign key to student_id in student table)
  ...

设计二

Student
 student_id
 name
 student_detail_id (foreign key to student_detail_id in Student_detail table)
 ....

学生详情

 student_detail_id
   ...

我的问题是哪种方法更好?从设计的角度来看,将外键保留在主表(在本例中为学生表)或辅助表(student_detail 表)中更好吗?

根据我的理解,方法 2 更好,因为如果我们添加更多的补充表,我们就不必修改主表?

mysql oracle
  • 2 个回答
  • 54 Views
Martin Hope
user3198603
Asked: 2018-07-07 06:39:12 +0800 CST

在这种情况下,CLOB 与 Varchar2 的性能如何?

  • 7

从 java 应用程序中,我需要存储可以超过 4000 个字符的字符串。我只需要存储它。然后具有数据库访问权限的人可以查询和查看它。不会从 java 应用程序访问该列。我也没有任何索引它的要求。

我的理解是,当我们需要访问 CLOB 数据类型或需要对其进行索引时,varchar2 在性能上比 CLOB 更好。那是对的吗 ?

我的问题 - 当我们只需要存储它并在 sql developer throigh 查询中访问它时,对性能有什么影响吗?

oracle varchar
  • 1 个回答
  • 10615 Views
Martin Hope
user3198603
Asked: 2018-06-21 20:27:08 +0800 CST

当其中一种模式崩溃时,这些相互冲突的场景将如何在 cassandra 中工作?

  • 0

假设我们有两个节点(没有分片的简单副本)即 N1、N2,复制因子为 2。我使用默认的读写一致性级别,即R和W1,这意味着它将从单个节点读取/写入单个节点

场景 1

  1. 考虑写入请求转到节点N1 以更新记录R1。说名字scott更新为scott_update1
  2. 在它被复制到之前N2,N1崩溃了
  3. 另一个写入请求转到节点N2 以更新相同的记录R1。现在scott更新为scott_update2
  4. 现在N1回来时,名称scott_update1会更新为scott_update2吗?

场景 2

  1. 考虑写入请求转到节点N1 以更新记录R1。说名字scott更新为scott_update1
  2. 在它被复制到之前N2,N1崩溃了
  3. 读取请求转到节点N2 以读取相同的记录R1。它返回scott
  4. 现在N1回来时,名称scott_update1会更新为scott还是保留scott_update1?
cassandra
  • 1 个回答
  • 36 Views
Martin Hope
user3198603
Asked: 2018-06-20 20:21:02 +0800 CST

处理cassandra中的读取冲突?

  • 0

假设我们有三个节点(没有分片的简单副本),即 N1、N2 和 N3,复制因子为 3。

  1. 由于读写请求可以到达任何节点,Say Request 写请求(同时更新同一条记录)来来去去节点 N1。

  2. 读取请求来读取相同的文档并转到节点 N2。我相信它会返回陈旧的数据,因为写入还没有复制到 N2 吗?考虑我没有调整读写问题的默认配置。

  3. 我相信步骤 2 中的问题可以通过以下任一选项解决

    一个。在同步复制中,有利于强一致性但不利于性能

    b. 如读写一致性中所述调整读写一致性

    C。在分片的帮助下(如果需要),分片键将确保所有读写都转到特定节点的特定分片键?

我对第2点和第3点的理解正确吗?

cassandra consistency
  • 2 个回答
  • 605 Views
Martin Hope
user3198603
Asked: 2018-06-20 18:31:07 +0800 CST

Cassandra vs Mongo 中的副本模型?

  • 0

假设在 Mongo 中我们有一个主节点和两个副本节点(简单副本没有分片)。读取和写入请求将仅处理主节点,副本将仅在发生故障转移时备份数据。

我对 Cassandra 中的复制(不是分片)的理解/问题

我们可以只有一个节点(比如 Node_1)服务于读写请求,而其他两个节点只是作为副本节点工作(这些节点只是从 Node_1 获取副本请求,没有来自用户的实时请求),就像在 Mongo 中考虑复制因子为 3 一样?

根据我的理解,这在 cassandra 中是不可能的,因为在 cassandra 中,副本节点是对等节点,因此三个节点中的任何一个节点都必须服务于写入和读取请求。

我的理解正确吗?

mongodb replication
  • 1 个回答
  • 91 Views
Martin Hope
user3198603
Asked: 2018-06-18 10:02:36 +0800 CST

Mongo CP,Cassandra AP?

  • 4

我在网上阅读了很多文章,但仍然对为什么 Mongo CP、Cassandra AP、RDBMS CA 感到困惑?将解释我的理解和查询。

蒙哥

考虑一个场景,我有一个主人和两个奴隶。考虑

  1. 写请求到达并转到主控。
  2. 它仅在主服务器上提交,但主服务器在写入从服务器之前关闭(崩溃)
  3. 直到master连任,写请求需要等待,系统不可用
  4. 一旦前一个节点(在步骤 2 中崩溃的节点)返回,该节点的待处理写入将被写回从属节点。这称为最终一致性。

根据我的理解,由于第 3 步和第 4 步,Mongo 被称为 CP,其中 C 代表最终一致。正确的 ?

卡桑德拉

这里没有主/从模型,每个节点都基于分片键接收其共享写入和读取请求。

  1. 写请求到达任意节点(称为协调节点)。
  2. 协调节点根据分片键重定向到其中一个节点
  3. 它被提交,但节点在写入其他复制节点之前关闭(崩溃)。
  4. 再次使用相同的分片键写入请求,现在协调节点立即将其重定向到副本节点(崩溃节点的副本)
  5. 一旦前一个节点(在步骤 3 中崩溃的节点)返回,该节点的待处理写入将被写回副本节点。所以 cassandra 似乎最终也是一致的?

第 4 步解释了为什么 cassandra 具有高可用性,但第 5 步也描述了它最终的一致性。因此,根据我的理解,cassandra 提供了最终一致性和可用性。那为什么说它不提供 Consitency 呢?

mongodb partitioning
  • 1 个回答
  • 2852 Views
Martin Hope
user3198603
Asked: 2018-03-21 09:14:10 +0800 CST

全扫描这里会先执行子查询吗?

  • 1

我有以下查询

select * 
    from employee employee,
    (select address1.id 
        from address1 add1, address2 add2
        where add1.address2_id = add2.id ) address_data
    where emp.empId = 100
    and emp.address_id = address_data.id 
// index exists  on both columns i.e. address_id and id

我期待第一个子查询(address_data)将在内部执行,并且将对 address1 和 address2 表进行全面扫描。然后将执行外部查询。

在查看 explain plain 后修改了理解

但是,当我查看 explain plain 时,它似乎并没有发生。我发现 address1 和 address2 表没有任何完整扫描。看起来像执行了第一个外部查询(只返回记录),然后只从 address1 和 address2 表中获取相关记录(仅供参考,地址表也返回了 1 行)。

这个策略在我看来是合乎逻辑的,因为在这种情况下不需要对地址表进行完全访问。

我的问题——我修改后的理解是否正确?但我的印象是子查询总是先执行。看起来我在这里错了?

oracle
  • 3 个回答
  • 312 Views
Martin Hope
user3198603
Asked: 2018-01-04 04:36:14 +0800 CST

从视图与查询中获取数据?

  • -1

方法_1

通过SQL查询

Select * from employee where id = 100

方法_2

这是数据库视图(employee_view)

Select * from employee

然后在 java 的 sql 查询中使用 DB 视图

select * from employee_view where id = 100

我的理解是,与方法 1 相比,方法 2 的性能较差。原因是 - 在第二种情况下,首先将从视图中获取所有数据,然后依次扫描每一行(基本上这里不会使用 id 列上的索引)。正确或方法_2 与方法_1 相同,因为最终查询将相同?

但是在 approach_2 中,将使用 id 上的索引,只获取对应于 100 的一行。那是对的吗 ?

这是我在这里给出的简单示例。但实际上,我将查询的某些部分提取到 DB 视图中,并在我的 java 代码中将 where 子句附加到该视图中。我看到解释计划发生了变化,一些索引没有被使用

更新:- Oracle 是这里的数据库

oracle view
  • 2 个回答
  • 2421 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve