相关疑难解决方法(0)

数据库索引 - 它是如何工作的?

索引如何提高数据检索的性能?

索引如何工作?

database indexing performance

6
推荐指数
2
解决办法
7564
查看次数

数据库复制在概念上如何工作?

我想了解数据库复制在概念上是如何工作的。我知道数据库有自己的日志(例如,MongoDB中的OpsLog),但是您可以在网上找到的大多数信息都是关于设置复制的,而不是复制的工作方式。

我也对理解MS SQL Server或MySQL如何专门进行复制不感兴趣。我更想掌握复制的基本思想和概念。

不幸的是,我不知道要寻找的术语,所以如果我寻找

数据库复制如何工作?

要么

概念上的数据库复制

我最终访问了数百个网站,解释了如何使复制适用于数据库X,但是我无法在概念上给出解释。

有什么提示吗?(请注意,我当然会对详细的答案感到满意,但即使是关于在网络上搜索内容的小提示也会很棒!)

PS:首先,即使对单向复制的工作原理进行解释也将有所帮助。

PPS:既然数据库索引是如何工作的?一直是一个有效的问题,我希望我的也是有效的,不要因为“范围太广”而被关闭或否决。

database replication synchronization database-replication

5
推荐指数
0
解决办法
288
查看次数

SQL 查询中的四分位数

我有一个非常简单的表格:

CREATE TABLE IF NOT EXISTS LuxLog (
  Sensor TINYINT,
  Lux INT,
  PRIMARY KEY(Sensor)
)
Run Code Online (Sandbox Code Playgroud)

它包含来自不同传感器的数千个日志。

我希望所有传感器都有 Q1 和 Q3。

我可以对每个数据进行一次查询,但最好对所有传感器进行一次查询(从一次查询中获取 Q1 和 Q3)

我认为这将是一个相当简单的操作,因为四分位数被广泛使用并且是频率计算中的主要统计变量之一。事实是,我发现了大量过于复杂的解决方案,而我希望找到一些简洁明了的解决方案。

任何人都可以给我一个提示?

编辑:这是我在网上找到的一段代码,但它对我不起作用:

SELECT  SUBSTRING_INDEX(
        SUBSTRING_INDEX(
            GROUP_CONCAT(                 -- 1) make a sorted list of values
                Lux
                ORDER BY Lux
                SEPARATOR ','
            )
        ,   ','                           -- 2) cut at the comma
        ,   75/100 * COUNT(*)        --    at the position beyond the 90% portion
        )
    ,   ','                               -- 3) cut at the comma
    ,   -1                                --    right after …
Run Code Online (Sandbox Code Playgroud)

mysql sql percentile quantile

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

计算查询执行时间

我的数据库中有一个问题表,这里是问题表的列和数据类型

Field           Datatype
QID             BIGINT
UserID          INT(11)
Question        VARCHAR(100)
Description     Text
Date            DateTime
Status          TINYINT
Run Code Online (Sandbox Code Playgroud)

该表预计有大约 200 万个条目,我的问题是,如果我根据 QID、UserID 或 Question 搜索记录,如何计算查询执行时间。

mysql database

3
推荐指数
1
解决办法
5099
查看次数

在SQL中基于群集和非群集索引优化查询?

我最近一直在阅读如何clustered indexnon-clustered index有效的方法.我用简单的术语理解(如果错误,请纠正我):

支持clusterednon-clustered index存在的数据结构B-Tree

Clustered Index:根据索引列(或键)对数据进行物理排序.你只能有一个clustered Index每个table.如果没有index表创建过程中指定,SQL服务器将自动创建clustered Indexprimary key column.

Q1:由于数据是根据索引进行物理排序的,因此这里不需要额外的空间.它是否正确?那么当我删除我创建的索引时会发生什么?

Non-clustered Index:在non-clustered indexes,leaf-node树的包含列值和指向数据库中实际行的指针(行定位器).这里存在将non-clustered index table物理存储在磁盘上所需的额外空间.但是,一个不受数量的限制non-clustered Indexes.

Q2:这是否意味着对非聚集索引列的查询不会导致排序数据?

问题3:此处有一个额外的查找,用于使用叶节点处的指针定位实际的行数据.与聚簇索引相比,这会有多大的性能差异?

锻炼; Tibial:

考虑一个Employee表:

CREATE TABLE Employee
(
PersonID int PRIMARY KEY,
Name varchar(255),
age int,
salary int
); 
Run Code Online (Sandbox Code Playgroud)

现在我创建了一个employee表(创建了employee上的默认聚簇索引).

此表上的两个常见查询仅发生在年龄和工资列上.为简单起见,我们假设表不经常更新

例如:

select * from employee where age …
Run Code Online (Sandbox Code Playgroud)

mysql sql indexing clustered-index non-clustered-index

3
推荐指数
1
解决办法
4531
查看次数

Hibernate Search(Lucene索引)如何工作?

我正在使用基于Lucene索引构建的Hibernate Search.如果针对数据库表创建索引,则返回结果的性能将很好.

我的问题是,一旦创建了索引,如果我们查询结果,Hibernate Search是否使用创建的索引从原始数据库表中获取结果?或者它不需要命中数据库来获取结果?

谢谢!

java lucene hibernate hibernate-search

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

索引数量越少意味着更快的插入,更新和删除?

我听说"索引数量越少意味着插入,更新和删除越快".它是否正确?如果是,那为什么呢?

sql

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

mysql 索引如何使 SELECT 查询更快

嗨,我MySQL在某种程度上了解索引。

我可以在创建表时创建索引

CREATE TABLE Product (
    ->    ID SMALLINT UNSIGNED NOT NULL,
    ->    ModelID SMALLINT UNSIGNED NOT NULL,
    ->    PRIMARY KEY (ID),
    ->    INDEX (ModelID)
Run Code Online (Sandbox Code Playgroud)

创建表后添加索引

CREATE INDEX index_name
ON table_name (column_name)
Run Code Online (Sandbox Code Playgroud)

也改变索引

ALTER TABLE TABLE_NAME ADD INDEX (COLUMN_NAME);
Run Code Online (Sandbox Code Playgroud)

**我想知道的是索引如何使选择查询快速

索引如何影响选择算法MySQL,索引列如何影响算法?请解释一下,提前致谢

php mysql sql

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

如何优化此SQL查询(使用索引)?

有一个查询运行速度比我想要的慢.查询已经是正确的,我已经重构了它,但我不能让它运行得足够快.在可能的情况下,谓词已经具备了Sarg-able功能.它已经正确使用连接,不请求额外的表,并且不会不必要地复制行或使用嵌套子查询以减慢它的速度.

我不是DBA,我不知道如何选择一个好的索引来加快查询速度.我可以改变桌子结构; 没有DBA负责数据库,我在数据库服务器上拥有这样做的权限.

如何优化SQL查询?

sql indexing

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