TokuDB索引结构TokuDB索引结构 网易杭州研究院---胡争(博客:openinx.github.io) TokuDB简介 • 基于分形树实现的MySQL存储引擎 • Tokutek公司2007年研发,2013年开源 • 2015年Percona公司收购Tokutek公司 • TokuDB内部的K-V存储引擎为ft-index • TokuMx: ft-index + MongoDB Server层代码 插入性能大大高于InnoDB(分形树vs B+树) • 查询性能略低于InnoDB • 在线执行DDL操作(不阻塞写操作) • 超高压缩率(TokuDB 4M vs InnoDB 16K) 更高性能,更低成本! 分形树索引结构(一) 分形树结构(二) • msg_buffer – 先进先出队列 • BasementNode(OMT) – 弱平衡二叉树 – 增删改查期望复杂度O(logN) • 页大小默认4M。0 码力 | 19 页 | 1.97 MB | 1 年前3
索引与切片索引与切片 主讲人:龙良曲 Indexing ▪ dim 0 first select first/last N select by steps select by specific index … select by mask ▪ .masked_select() select by flatten index 下一课时 Tensor变换 Thank You.0 码力 | 10 页 | 883.44 KB | 1 年前3
OpenShift Container Platform 4.7 日志记录OpenShift Logging 每个索引最多五个主分片 更新了 OpenShift Elasticsearch Operator 名称和成熟度等级 OpenShift Elasticsearch Operator 报告 CSV 成功 减少 Elasticsearch pod 证书权限警告 从警报到解释和故障排除的新链接 删除作业的新连接超时 最小化滚动索引模板的更新 1.2.11.2. 技术预览功能 控制台安装 OPENSHIFT LOGGING 3.2. 安装后的任务 3.3. 使用 CLI 安装 OPENSHIFT LOGGING 3.4. 安装后的任务 3.4.1. 定义 Kibana 索引模式 3.4.2. 启用网络隔离时允许项目间的流量 第 第 4 章 章 配置日志部署 配置日志部署 4.1. 集群日志记录自定义资源(CR) 4.1.1. 关于 ClusterLogging 的支持策略 第 第 5 章 章 查 查看 看资 资源的日志 源的日志 5.1. 查看资源日志 第 第 6 章 章 使用 使用 KIBANA 查 查看集群日志 看集群日志 6.1. 定义 KIBANA 索引模式 6.2. 在 KIBANA 中查看集群日志 第 第 7 章 章 将日志 将日志转发 转发到第三方系 到第三方系统 统 7.1. 关于将日志转发到第三方系统 当外部日志聚合器不可用时,Fluentd0 码力 | 183 页 | 1.98 MB | 1 年前3
OpenShift Container Platform 4.8 日志记录维护和支持 第 第 5 章 章 查 查看 看资 资源的日志 源的日志 5.1. 查看资源日志 第 第 6 章 章 使用 使用 KIBANA 查 查看集群日志 看集群日志 6.1. 定义 KIBANA 索引模式 6.2. 在 KIBANA 中查看集群日志 第 第 7 章 章 将日志 将日志转发 转发到外部第三方日志 到外部第三方日志记录 记录系 系统 统 7.1. 关于将日志转发到第三方系统 7 在这个版本中,通过设置上游开发团队所推荐的配置参数修正。(LOG-2792) 在此次更新之前,当 ClusterLogForwarder 自定义资源定义了 JSON 解析时,每个 rollover 任 务都会创建空索引。在这个版本中,新的索引不为空。(LOG-2823) 在此次更新之前,如果您删除了 Kibana 自定义资源,OpenShift Container Platform Web 控制台 将继续显示到 Kibana 版本中,内部路由正确。(LOG-2946) 在此次更新之前,Operator 无法使用带引号的布尔值值解码索引设置 JSON 响应,并导致错误。 在这个版本中,Operator 可以正确解码这个 JSON 响应。(LOG-3009) 在此次更新之前,Elasticsearch 索引模板定义了带有错误类型的标签的字段。这会更新这些模板 以匹配日志收集器所转发的预期类型。(LOG-2972) 10 码力 | 223 页 | 2.28 MB | 1 年前3
TiDB v5.2 中文手册· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 35 2.3.2 索引和约束 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 72 3.3.4 创建、查看和删除索引 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 1593 12.11.5 聚簇索引 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·0 码力 | 2259 页 | 48.16 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Kotlin 版算法的时间效率往往不是固定的,而是与输入数据的分布有关。假设输入一个长度为 ? 的数组 nums ,其中 nums 由从 1 至 ? 的数字组成,每个数字只出现一次;但元素顺序是随机打乱的,任务目标是返回元素 1 的 索引。我们可以得出以下结论。 ‧ 当 nums = [?, ?, ..., 1] ,即当末尾元素是 1 时,需要完整遍历数组,达到最差时间复杂度 ?(?) 。 ‧ 当 nums = [1, ?, ?索引 */ fun findOne(nums: Array ): Int { for (i in nums.indices) { // 当元素 1 在数组头部时,达到最佳时间复杂度 O(1) 杂度可以体现算法在随机输入数据下的 运行效率,用 Θ 记号来表示。 对于部分算法,我们可以简单地推算出随机数据分布下的平均情况。比如上述示例,由于输入数组是被打乱 的,因此元素 1 出现在任意索引的概率都是相等的,那么算法的平均循环次数就是数组长度的一半 ?/2 ,平 均时间复杂度为 Θ(?/2) = Θ(?) 。 但对于较为复杂的算法,计算平均时间复杂度往往比较困难,因为很难分析出在数据分布下的整体数学期望。 0 码力 | 382 页 | 18.48 MB | 10 月前3
Hello 算法 1.1.0 Kotlin版算法的时间效率往往不是固定的,而是与输入数据的分布有关。假设输入一个长度为 ? 的数组 nums ,其中 nums 由从 1 至 ? 的数字组成,每个数字只出现一次;但元素顺序是随机打乱的,任务目标是返回元素 1 的 索引。我们可以得出以下结论。 ‧ 当 nums = [?, ?, ..., 1] ,即当末尾元素是 1 时,需要完整遍历数组,达到最差时间复杂度 ?(?) 。 ‧ 当 nums = [1, ?, ? in 0..索引 */ fun findOne(nums: Array ): Int { for (i in nums.indices) { // 当元素 1 在数组头部时,达到最佳时间复杂度 O(1) 杂度可以体现算法在随机输入数据下的 运行效率,用 Θ 记号来表示。 对于部分算法,我们可以简单地推算出随机数据分布下的平均情况。比如上述示例,由于输入数组是被打乱 的,因此元素 1 出现在任意索引的概率都是相等的,那么算法的平均循环次数就是数组长度的一半 ?/2 ,平 均时间复杂度为 Θ(?/2) = Θ(?) 。 但对于较为复杂的算法,计算平均时间复杂度往往比较困难,因为很难分析出在数据分布下的整体数学期望。 0 码力 | 381 页 | 18.47 MB | 1 年前3
Hello 算法 1.0.0b4 Python版某些算法的时间复杂度不是固定的,而是与输入数据的分布有关。例如,假设输入一个长度为 ? 的数组 nums ,其中 nums 由从 1 至 ? 的数字组成,但元素顺序是随机打乱的;算法的任务是返回元素 1 的索引。我们可 以得出以下结论: ‧ 当 nums = [?, ?, ..., 1] ,即当末尾元素是 1 时,需要完整遍历数组,此时达到 最差时间复杂度 ?(?) 。 ‧ 当 nums = [1, 随机打乱数组元素 random.shuffle(nums) return nums def find_one(nums: list[int]) -> int: """ 查找数组 nums 中数字 1 所在索引""" for i in range(len(nums)): # 当元素 1 在数组头部时,达到最佳时间复杂度 O(1) # 当元素 1 在数组尾部时,达到最差时间复杂度 O(n) if nums[i] 度」可以体现算法在随机输入数据下 的运行效率,用 Θ 记号来表示。 对于部分算法,我们可以简单地推算出随机数据分布下的平均情况。比如上述示例,由于输入数组是被打乱 的,因此元素 1 出现在任意索引的概率都是相等的,那么算法的平均循环次数则是数组长度的一半 ? 2 ,平均 时间复杂度为 Θ(? 2) = Θ(?) 。 但在实际应用中,尤其是较为复杂的算法,计算平均时间复杂度比较困难,因为很难简便地分析出在数据分0 码力 | 329 页 | 27.34 MB | 1 年前3
Hello 算法 1.0.0b4 C++版某些算法的时间复杂度不是固定的,而是与输入数据的分布有关。例如,假设输入一个长度为 ? 的数组 nums ,其中 nums 由从 1 至 ? 的数字组成,但元素顺序是随机打乱的;算法的任务是返回元素 1 的索引。我们可 以得出以下结论: ‧ 当 nums = [?, ?, ..., 1] ,即当末尾元素是 1 时,需要完整遍历数组,此时达到 最差时间复杂度 ?(?) 。 ‧ 当 nums = [1, shuffle(nums.begin(), nums.end(), default_random_engine(seed)); return nums; } /* 查找数组 nums 中数字 1 所在索引 */ int findOne(vector&nums) { for (int i = 0; i < nums.size(); i++) { // 当元素 1 在数组头部时,达到最佳时间复杂度 度」可以体现算法在随机输入数据下 的运行效率,用 Θ 记号来表示。 对于部分算法,我们可以简单地推算出随机数据分布下的平均情况。比如上述示例,由于输入数组是被打乱 的,因此元素 1 出现在任意索引的概率都是相等的,那么算法的平均循环次数则是数组长度的一半 ? 2 ,平均 时间复杂度为 Θ(? 2) = Θ(?) 。 但在实际应用中,尤其是较为复杂的算法,计算平均时间复杂度比较困难,因为很难简便地分析出在数据分 0 码力 | 343 页 | 27.39 MB | 1 年前3
Hello 算法 1.0.0b4 Java版某些算法的时间复杂度不是固定的,而是与输入数据的分布有关。例如,假设输入一个长度为 ? 的数组 nums ,其中 nums 由从 1 至 ? 的数字组成,但元素顺序是随机打乱的;算法的任务是返回元素 1 的索引。我们可 以得出以下结论: ‧ 当 nums = [?, ?, ..., 1] ,即当末尾元素是 1 时,需要完整遍历数组,此时达到 最差时间复杂度 ?(?) 。 ‧ 当 nums = [1, int[n]; for (int i = 0; i < n; i++) { res[i] = nums[i]; } return res; } /* 查找数组 nums 中数字 1 所在索引 */ int findOne(int[] nums) { for (int i = 0; i < nums.length; i++) { // 当元素 1 在数组头部时,达到最佳时间复杂度 O(1) 度」可以体现算法在随机输入数据下 的运行效率,用 Θ 记号来表示。 对于部分算法,我们可以简单地推算出随机数据分布下的平均情况。比如上述示例,由于输入数组是被打乱 的,因此元素 1 出现在任意索引的概率都是相等的,那么算法的平均循环次数则是数组长度的一半 ? 2 ,平均 时间复杂度为 Θ(? 2) = Θ(?) 。 但在实际应用中,尤其是较为复杂的算法,计算平均时间复杂度比较困难,因为很难简便地分析出在数据分0 码力 | 342 页 | 27.39 MB | 1 年前3
共 602 条
- 1
- 2
- 3
- 4
- 5
- 6
- 61













