首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏迁移内容

    高性能MySQL(3)——创建高性能索引

    三、高性能的索引策略 3.1、独立的列 索引列不能是表达式的一部分,也不能是函数的参数。 例如:LELECT COUNT(DISTINCT city)/COUNT() AS sel1, COUNT(DISTINCT LEFT(city, 3))/COUNT() AS sel2, …; 如果前缀的选择性接近 例如:key(col1, col2, col3); MySQL5.0之后的版本引入了“索引合并”的策略,一定程度上可以使用表上的多个单列索引来定位表中的行; 索引合并策略有时候是一种优化后的结果,但实际上更说明表上的索引建得很糟糕 参考: 《高性能 MySQL 第三版》 聚簇索引和非聚簇索引 mysql-覆盖索引 创建高性能的索引

    1.6K20编辑于 2022-12-01
  • 来自专栏程序人生 阅读快乐

    高性能MySQL(第3版)

    高性能mysql(第3版)》是mysql 领域的经典之作,拥有广泛的影响力。 第3 版更新了大量的内容,不但涵盖了最新mysql 5.5版本的新特性,也讲述了关于固态盘、高可扩展性设计和云计算环境下的数据库相关的新内容,原有的基准测试和性能优化部分也做了大量的扩展和补充。 《高性能mysql(第3版)》不但适合数据库管理员(dba)阅读,也适合开发人员参考学习。不管是数据库新手还是专家,相信都能从本书有所收获。

    1.1K20发布于 2018-10-10
  • 来自专栏写PHP的老王

    高性能MySQL(第3版)阅读笔记

    3、数据类型越短越好,尽量避免NULL(NULL索引,统计,比较更复杂,可为NULL的列需要的存储空间更多) 4、整数(tinyint 8位,smallint 16位,mediumint 24位,int 8、以下情况适合使用varchar[高性能MySQL(第3版)p115]: 字符串最大长度比平均长度大很多,列的更新少(不会产生碎片);使用类似UTF8字符集,每个字符使用不同字节数存储 9、char

    1K40发布于 2019-08-12
  • 来自专栏陶辉笔记

    高性能网络编程3—-TCP消息的接收

    2、接着,我们收到了S3-S4报文。在第1步结束后,这时我们需要收到的是S2序号,但到来的报文却是S3打头的,怎么办呢?进入out_of_order队列! 3、仍然没有进入来读取socket,但又过来了我们期望的S2-S3报文,它会像第1步一样,直接进入receive队列。 由于收到S2-S3报文后,期待的序号成为了S3,这样,out_of_order队列里的唯一报文S3-S4报文将会移出本队列而插入到receive队列中(这件事由tcp_ofo_queue方法完成)。 内核中断看到被锁住后也会做不同的处理,参见图2、图3。 8、此时,第1-4步已经为receive队列里准备好了3个报文。最上面的报文是S1-S2,将它拷贝到用户态内存中。 图3给出了第3种场景。这个场景中,我们把系统参数tcp_low_latency设为1,socket上设置了SO_RCVLOWAT属性的值。

    1.6K51发布于 2019-06-21
  • 来自专栏萝卜要加油

    Go高性能编程EP3: 内存对齐

    本文写作所有的例子以 macbookpro M1 为例,该CPU为64位架构 本文是Go语言高性能编程第三篇,分析了为什么需要内存对齐,Go语言内存对齐的规则,以及实际例子中内存对齐的使用,最后分享了两个工具 funcmain() { a := T3{} atomic.AddInt64(&a.d, 1) } 在 amd64 架构下运行不会报错,但是在i386 架构下面就会panic。 Figure 3: T3 panic 原因就是 T3 在 32bit 平台上是 4 字节对齐,而在 64bit 平台上是 8 字节对齐。 在 64bit 平台上其内存布局为: Figure 4: T3在 amd64 的内存布局 但是在I386 的布局为: Figure 5: T3在 i386的内存布局 这个问题在 atomic[2] 为了解决这种情况,我们必须手动 padding T3,让其 “看起来” 像是 8 字节对齐的: type T3 struct { b int64 c int32 _ int32

    30310编辑于 2025-03-07
  • 来自专栏大史住在大前端

    高性能Web动画和渲染原理系列(3)——transform和opacity为什么高性能

    translate来实现,动画元素在文档流中的位置并不需要改变,无论后续平移到多远,都可以使用位图缓存中保存的初始位置信息,再加上变换矩阵的影响在层合并时计算出来,同样既不影响布局,也不需要重绘,这就是它高性能的原因 三.小结 opacity和transform动画的高性能是由于其数学原理决定了可以使用缓存信息,而并不是因为它被硬件加速了。

    1.4K10发布于 2019-10-28
  • 来自专栏cwl_Java

    3分钟速读原著《高性能MySQL》(四)

    能很好保证业务不断增长时数据的安全和随时的扩展 基于NDB引擎:一个集群存储引擎,类似于Oracle的RAC,但它是Share Nothing的架构,因此能提供更高级别的高可用性和可扩展性 基于中间件/proxy 基于共享存储 基于主机高可用 3. 3.DB Ninja ? DbNinja是一款先进的基于Web的MySQL数据库管理与开发应用程序。它是远程访问托管服务器的必然之选。

    1.6K30发布于 2019-10-26
  • 来自专栏cwl_Java

    3分钟速读原著《高性能MySQL》(三)

    .查找配置文件 在类 UNIX 系统中,配置文件的位置一般在 /etc/my.conf 或者 /etc/mysql/my.conf 中 2.配置语法 配置项设置都使用小写,单词之间用下划线或横线隔开 3. 然后盘片就需旋转到正确的扇区上(这就是旋转时延).这套动作需要时间,这段时间就是我们在访问磁盘时会产生的时间. 2.系统选择 使用linux系统,相比之下比Windows系统减少了很多不必要的内存堆积 3. 如果有很多盘的话,这可能是RAID 5 的经济性和RAID 10的高性能之间的一个折中。主要用处是存放庞大的数据集,例如数据仓库或非常庞大的OLTP系统。 传统机械硬盘选择RAID 10,如果是固态硬盘SSD性价比更高 第十章 复制 一.复制的搭建步骤 1.配置主库和从库 2.创建复制的账号 3.创建主库一致性快照 4.根据主库的快照,建立从库 5.开启复制 master上所有的变更都能复制到slave上 在执行以下操作时,只需更少的行锁 缺点 会产生大量的日志 不会对二进制日志进行校验 不推荐基于库级别的复制 3.MIXED MIXED是上述两者的的结合

    74820发布于 2019-10-26
  • 来自专栏cwl_Java

    3分钟速读原著《高性能MySQL》(一)

    本系列主要是针对<高性能MySQL>原著进行内容抽取,帮助开发者快速阅读书籍 第一章 MySQL架构与历史 一.锁机制 1.读写锁 1.1 读锁(共享锁):多个用户在同一时刻可以同时读取同一个资源,而且互不干扰 ):操作将永久改变 2.没有事务将产生的问题 2.1 脏读:读取了其它操作中未提交的数据 2.2 不可重复读:两次查询结果不一致,由于更新导致 2.3 幻读:两次查询结果不一致,由于新增或者删除导致 3. 测试流程和测试工具推荐一位写的不错的博客,古寨城主.对于普通开发者而言,跟着该步骤操作一下即可,不建议十分深入 第三章 服务器性能剖析 1.定义性能最有效的是响应时间 2.性能优化的前提是进行响应时间的测量 3. 试图增加冗余数据或分组数据来优化数据库读取性能的过程,减少了表之间的连接 但如果冗余数据量过大的时候,可能会碰到I/O瓶颈,导致性能变得更差,所以需要 衡量各个表的更新量和查询量 在数据统计分析,数据仓库等领域使用的比较多 3.

    98010发布于 2019-10-26
  • 来自专栏纸上得来终觉浅

    《Linux高性能服务器编程》学习小结3

    首先,大家看下它的功能设计图大概如下: 1.jpg 2.jpg 3.jpg 4.jpg 5.jpg 再来看下对应的源码分析: config.xml Listen 10.194.70.225 = strstr( tmp, "<name>" ) ) { tmp_hostname = tmp3 + 6; tmp4 = strstr( = strstr( tmp, "<conns>" ) ) { tmp_conncnt = tmp3 + 7; tmp4 = strstr( = strstr( tmp, "Listen" ) ) { tmp_hostname = tmp3 + 6; tmp4 = strstr( 最后感谢 游双 的《Linux高性能服务器编程》

    3.4K10发布于 2021-02-04
  • 来自专栏cwl_Java

    3分钟速读原著《高性能MySQL》(二)

    第五章 创建高性能的索引 1.索引类型 1.1 普通索引 NORMAL: 是最基本的索引,它没有任何限制。 3.注意事项 3.1 索引不会包含有null值的列: 只要列中包含有null值都将不会被包含在索引中,复合索引中只要有一列含有null值,那么这一列对于此复合索引就是无效的。 1.1 检索大量超过需要的数据 1.2 服务层在分析大量超过需要的数据行 2.慢查询解决方案 2.1 不查询不需要的记录 2.2 多表关联时不要返回不必要的全部列 2.3 不重复查询相同的数据 3. 返回值不能是负数 2.4 KEY分区:根据MySQL内部提供的哈希函数进行分区 2.5 COLUMNS分区:5.5开始支持,可以直接使用非整形的数据进行分区,分区根据类型直接比较而得,不需要转换为整形 3. 2.query_cache_size 默认情况下query_cache_size为0,表示为查询缓存预留的内存为0,则无法使用查询缓存 3.缓存条件 查询缓存可以看做是SQL文本和查询结果的映射。

    76410发布于 2019-10-26
  • 来自专栏用户2442861的专栏

    高性能网络编程3----TCP消息的接收

    2、接着,我们收到了S3-S4报文。在第1步结束后,这时我们需要收到的是S2序号,但到来的报文却是S3打头的,怎么办呢?进入out_of_order队列! 3、仍然没有进入来读取socket,但又过来了我们期望的S2-S3报文,它会像第1步一样,直接进入receive队列。 由于收到S2-S3报文后,期待的序号成为了S3,这样,out_of_order队列里的唯一报文S3-S4报文将会移出本队列而插入到receive队列中(这件事由tcp_ofo_queue方法完成)。 3、锁住socket。 图3给出了第3种场景。这个场景中,我们把系统参数tcp_low_latency设为1,socket上设置了SO_RCVLOWAT属性的值。

    1.5K10发布于 2018-09-20
  • 来自专栏逸鹏说道

    维护索引(3)——通过重建索引提高性能

    前言: 重建一个索引只是在内部删除并重建索引,使得碎片消失、统计信息更新、物理顺序重新排列组织。它会压缩数据页,按照填充因子填充适当的数据。如果有需要,也会添加新的数据页。这些操作有利于提高数据查找的速度,但是这个工作如果发生在大表上面,将是非常耗时耗资源的。 准备工作: 首先先要决定是否达到了重建索引的临界值。否则,重组索引会更好。当碎片超过30%,那么重建索引会比较好。 重建索引有两种方式,在重建之前应该考虑使用哪种会更好: 1、 脱机:脱机重建索引是默认选项。它会锁住整个表,知道重建结束,没有人可以访

    1.2K40发布于 2018-04-11
  • 来自专栏编程开发基础

    关于Redis的入门 3:浅谈Redis的特点——高性能

    关于Redis的入门 3:浅谈Redis的特点——高性能在谈论Redis时,最常被提及的特点之一就是它的高性能。 本文将详细讲解Redis的高性能特点,并从多个角度深入分析它是如何做到这一点的。1. 为什么Redis的性能如此高?1.1 内存存储Redis的高性能首先得益于它的内存存储特性。 1.5 支持多种缓存策略Redis作为一个缓存系统,其高性能还得益于对多种缓存策略的支持。 3. 总结Redis的高性能源自其内存存储、单线程模型、简单数据结构以及优化的持久化机制。 如果你正在开发需要高性能、高并发的应用,Redis无疑是一个非常值得考虑的解决方案。本文由“云萌工作室-编程开发基础”专栏提供,关注更多编程技巧与知识。

    52410编辑于 2025-03-02
  • 来自专栏DPU

    libfabric_ofa_简介_指南_设计思想_高性能网络3

    In the default case, OFI defines ordering semantics such that messages 1, 2, 3, etc. from the sender 在默认情况下,OFI 定义了排序语义,使得来自发送者的消息 1、2、3 等在目标处以相同的顺序接收。 高性能网络提供程序列在更通用的提供程序之前,例如套接字或 UDP 提供程序。 辅助功能主要处理高度可扩展的高性能应用程序所需的功能。例如,FI_MULTI_RECV 辅助功能指示提供程序是否可以支持上述多接收缓冲区功能。 只有一个可能代表连接到系统的高性能网络。 其他是通用提供程序,可以在任何系统上使用,例如 TCP 套接字和 UDP 提供程序。 Fabric 字段用于帮助应用程序管理开放的 Fabric 资源。

    43710编辑于 2025-06-13
  • 来自专栏浅谈电商系统的实践经验

    消息队列(3)--Kafka高性能是怎么做到的

    Kafka是高性能的消息队列,在消息中间件中,它的性能绝对是第一梯队究其原因,除了通用的性能优化手段,全异步化的线程模型只用少量的线程,就能达到超高的吞吐能力,缺点是代码复杂度要大很多高性能的异步网络传输使用基于 3.使用顺序读写磁盘,提升磁盘读写性能顺序读写相比随机读写省去了大部分的寻址时间,它只要寻址一次,就可以连续地读写下去,所以说,性能要比随机读写要好很多。Kafka 就是充分利用了磁盘的这个特性。 这个过程中,数据实际上做了 2 次或者 3 次复制:从文件复制数据到 PageCache 中,如果命中 PageCache,这一步可以省掉;从 PageCache 复制到应用程序的内存空间中,也就是我们可以操作的对象所在的内存 Kafka 使用零拷贝技术可以把这个复制次数减少一次,上面的 2、3 步骤两次复制合并成一次复制。 以上这些,就是 Kafka 之所以能做到如此高性能的关键技术点。你可以看到,要真正实现一个高性能的消息队列,是非常不容易的,你需要熟练掌握非常多的编程语言和操作系统的底层技术。

    63840编辑于 2023-10-05
  • 来自专栏全栈技术

    ZooKeeper+Dubbo 3:构建高性能分布式RPC通信

    而ZooKeeper和Dubbo 3则是目前广泛应用于构建高性能分布式RPC通信的两个优秀开源工具。 本文将介绍ZooKeeper和Dubbo 3的基本概念以及它们如何配合使用来实现高性能分布式RPC通信。 二、Dubbo 3 Dubbo 3是一种分布式服务框架,可以支持高并发、高性能的分布式RPC通信。Dubbo 3提供了服务发现、负载均衡、远程调用等功能。 三、ZooKeeper+Dubbo 3 ZooKeeper和Dubbo 3可以很好地配合使用来构建高性能分布式RPC通信。 Dubbo 3是一种分布式服务框架,可以支持高并发、高性能的分布式RPC通信。通过ZooKeeper和Dubbo 3的配合使用,我们可以构建高性能、高可靠性的分布式RPC通信。

    73030编辑于 2023-03-25
  • Vue3+Pinia+Vite+TS 还原高性能外卖APP项目

    Vue3+Pinia+Vite+TS 还原高性能外卖APP项目要还原一个高性能的外卖APP,需要从多个方面进行综合考虑和实施。 Vue3的组合式API(Composition API)可以提高代码的可读性和可维护性。 状态管理:使用Pinia作为Vue3的状态管理库,它提供了轻量且高效的状态管理方案,可以实现全局状态的管理和共享。 综上所述,还原一个高性能的外卖APP需要从技术选型、功能实现、性能优化、安全与稳定性以及持续优化与迭代等多个方面进行综合考虑和实施。 通过合理的项目结构设计和开发流程规划,可以高效地开发出满足用户需求的高性能外卖APP。

    51910编辑于 2025-01-02
  • 来自专栏AI模型部署实践

    高性能应用服务 HAI - DeepSeek-v3 0324版

    一、环境说明本环境预装 DeepSeek-v3 0324版,支持function call,仅支持在高性能应用服务HAI“八卡旗舰型”算力套餐上运行。 DeepSeek-v3 0324模型容器2. AnythingLLM 项目容器实例创建后,会自动运行上述两个容器。 由于deepseek-v3模型较大,首次加载需30分钟左右完成,加载完成后方可开始使用。2.1 DeepSeek-v3 模型容器使用指引1. DeepSeek容器进入sudo docker exec -it deepseek-v3 bash2. 模型加载进度查看。模型首次加载耗时约30分钟,您可进入容器后输入如下命令查看加载进度。 tail -f /cfs/ds3_infer.log3.

    56410编辑于 2025-04-28
  • 来自专栏Python每日一库

    mmh3:超高性能的非加密哈希Python库

    今天要介绍的MurmurHash3(通过mmh3库实现)就是一个超高性能的非加密哈希算法,它在保证哈希质量的同时,计算速度可以达到传统算法的5-10倍。 实现高性能布隆过滤器:class BloomFilter: def __init__(self, size, hash_count): self.size = size print(f"页面1指纹: {page_signature(page1)}")print(f"页面2指纹: {page_signature(page2)}")实战案例:大规模数据去重在处理海量数据时,mmh3高性能特性特别有用 ,但它的高性能特性使其成为大数据处理、缓存系统、分布式系统等场景的不二之选。 虽然mmh3不适用于密码学场景(因为它是非加密哈希),但在需要快速计算哈希值的场景下,它的表现令人印象深刻。随着大数据应用的持续发展,mmh3这样的高性能工具必将发挥更大的价值。

    79710编辑于 2025-01-16
领券