问题标签 [database-indexes]

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 投票
1 回答
895 浏览

sql-server-2005 - 聚集索引总碎片到高(66.67%)

我有一个只有 7 列和 400 行的表。其主键列上有一个聚集索引。索引页 Fullness 为 68.98%,Total Fragmentation 为 66.67%。

这是我在 90% 的应用程序查询中使用的表,我感觉由于碎片百分比很高,它会减慢很多查询。有什么建议吗?

观察:在表的 7 列中,有 3 列的所有行的值都为 NULL,这可能是原因吗?

0 投票
1 回答
418 浏览

schema - 无法使用 cassandra 0.8.2 更新架构

我有 0.8.2 的单节点 cassandra 安装。我用 cassandra-cli 创建了一些列族

现在我必须在这个列族上使用二级索引。为此我需要升级架构。当我尝试使用 cassandra-cli 升级它时

我收到以下错误消息

org.apache.cassandra.db.marshal.MarshalException:无法解析“col1”

我试过使用 bytes('col1') ,假设关键字 ,ascii 和 utf8 都不起作用。

作为十六进制字节

虽然同样的事情在 cassandra 0.8.4 上工作得很好

0 投票
4 回答
30978 浏览

database - 不同类型的数据库索引?

我正在尝试编译一个非系统特定的数据库索引列表。我查看了 Oracle、DB2、MySQL、Postgres 和 Sybase,几乎每个资源都有不同的列表。到目前为止,我已经看到:

似乎不同的系统对相同类型的索引有不同的名称。

是否有跨所有系统的标准索引类型?

0 投票
1 回答
2051 浏览

mysql - MySQL修复索引,因此左连接时可能的键不为空

当我在查询中运行解释 I 时,此问题是从此处发布的问题而来的

我得到回应

该表是用

如何更改索引或查询以使其更有效地使用密钥?一旦数据库增长到 700 万行,查询大约需要 30 秒


可以使用虚拟数据创建的编辑

0 投票
3 回答
229 浏览

mysql - ORDER BY 优化是否在以下 SELECT 语句中生效?

我有一个SELECT我想优化的声明。mysql-order by optimization表示在某些情况下不能使用索引来优化ORDER BY. 具体点:

您对键的非连续部分使用 ORDER BY
SELECT * FROM t1 WHERE key2=constant ORDER BY key_part2;

让我想,这可能是这种情况。我正在使用以下索引:

使用以下 SQL 语句:

  • 删除索引并使用新的met_value_index1排序创建它就足够了RTU_NB吗?MP_NBDATETIME
  • 我必须在ORDER BY子句中包含 RTU_NB 吗?


结果:我尝试了@meriton 的建议并添加了 index met_value_index2SELECT1.2 秒后完成,之前 5.06 秒后完成。以下不属于问题,但作为旁注:经过其他一些尝试,我将引擎从 MyISAM 切换到 InnoDB - 使用rtu_nb, mp_nb, datetime作为主键 - 语句在 0.13 秒后完成!

0 投票
2 回答
704 浏览

mysql - Optimal Mysql Config (Partiontion) & Indexes / Hypertable / RAID Config (Huge Database)

tl;rd:

  1. 使用主键进行数据库分区
  2. 索引大小问题。
  3. 数据库大小每天增长约 1-3 GB
  4. 突袭设置。
  5. 你有使用 Hypertable 的经验吗?

长版:

我刚建/买了一个家庭服务器:

  • 至强 E3-1245 3,4 HT
  • 32GB 内存
  • 6x 1.5 TB WD Cavier Black 7200

我将使用服务器主板 INTEL S1200BTL Raid(没有钱购买 RAID 控制器)。http://ark.intel.com/products/53557/Intel-Server-Board-S1200BTL

主板有 4x SATA 3GB/s 接口和 2x SATA 6GB/s

我还不确定我是否可以在 RAID 10 中设置所有 6 个硬盘,

如果不可能,我认为 4x hdds Raid 10 (MYSQL DB) & 2xhdds Raid 0 for (OS/Mysql Indexes)。

(如果raid 0中断,对我来说没问题,我只需要保护数据库)

关于数据库:

它是一个网络爬虫数据库,其中存储了域、url、链接和此类内容。所以我想我用每个表的主键对数据库进行分区,比如 (1-1000000) (1000001-2000000) 等等。

当我在数据库中搜索/插入/选择查询时,我需要扫描孔表,因为有些东西可能在第 1 行,而另一些在第 1000000000000 行。

如果我通过主键(auto_increment)进行这样的分区,这会使用我所有的 CPU 内核吗?以便它并行扫描每个分区?或者我应该坚持使用一个没有分区的巨大数据库。

数据库将非常大,现在在我的家庭系统上,

我看到我可以修复外部链接和链接索引,我只是添加了外部链接,因为我需要查询该字段并且我无法使用链接索引。你看到了吗,我可以在索引上调整什么?我的新系统将有 32 GB,但如果数据库以这种速度增长,我将在 FEW 周/月内使用 90% 的 RAM。

打包的索引有帮助吗?(性能如何下降?)

其他重要表小于 500MB。

当我提取了我需要的所有内容后,可以从此表中擦除数据。

你有使用Hypertables的经验吗?http://hypertable.org/ <= Google 的 Bigtables。如果我转向 Hypertables,这对我的性能有帮助吗(提取数据/搜索/插入/选择和数据库大小)。我在页面上阅读,但我仍然有些无能为力。因为你不能直接比较 MYSQL 和 Hypertables。我会尽快尝试,必须先阅读文档。

我需要一个适合我的设置的解决方案,因为我没有钱用于任何其他硬件设置。

感谢帮助。

0 投票
2 回答
1337 浏览

sql - 视图中Where子句前的select语句处理

我有一个语句选择 charindex 的子字符串,如下所示:

当我在选择查询中运行上述语句时,结果返回得很好。当我在模式绑定索引视图中运行上述语句时,我收到此错误:

为了解决这个问题,我将编写一个函数来获取 CharIndex 的最大值和 0,以消除负值的可能性。但是有谁知道为什么 where 子句不会过滤掉 select 语句?

0 投票
3 回答
11412 浏览

database - 如何在数据库索引中使用二进制搜索

我知道二分搜索的工作原理,但我想知道二分搜索的实际用途......我在互联网上搜索,发现主要用途是数据库索引,但我不明白二分搜索如何帮助数据库索引。

0 投票
1 回答
81 浏览

mysql - 如何说服这个 MYSQL 查询使用索引?

下面是有问题的查询的解释..

我在它试图在 where 条件下执行的三列上有索引,但遗憾的是它没有尝试使用索引合并。是创建多列索引的唯一选择,还是有什么东西让 MYSQL 无法使用这些索引?

0 投票
1 回答
328 浏览

mysql - CakePHP 模型的 find() 未命中整数字符串的 mysql 索引 b/c

在使用这样的代码时:

where field is varchar mysql field cake 生成如下查询:

而不是预期

这也使得 mysql 将整个数据库转换为 int 而不是使用字符串索引。我正在尝试优化由其他人编写的已经工作的系统,并且快速 grep 显示了我需要“修复”的数千个查找。因此,唯一可接受的解决方案应该是模型层或 mysql 层。

tl; dr:如何让 Cake 将整数字符串从条件传递给 mysql 作为字符串而不是数字?