首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏高性能服务器开发

    数据库进阶5 Mysql 性能优化20个原则(3)

    Prepared Statements Prepared Statements很像存储过程,是一种运行在后台的SQL语句集合,我们可以从使用 prepared statements 获得很多好处,无论是性能问题还是安全问题 在性能方面,当一个相同的查询被使用多次的时候,这会为你带来可观的性能优势。你可以给这些Prepared Statements定义一些参数,而MySQL只会解析一次。 在PHP中要使用prepared statements,你可以查看其使用手册:mysqli 扩展 或是使用数据库抽象层,如:PDO. 1// 创建 prepared statement 2if ($ { 3 4 // 绑定参数 5 $stmt->bind_param("s",$state); 6 7 // 执行 8 $stmt->execute(); 9 10 固定长度的表会更快 固定长度的表会提高性能,因为MySQL搜寻得会更快一些,因为这些固定的长度是很容易计算下一个数据的偏移量的,所以读取的自然也会很快。

    72820发布于 2018-07-25
  • 来自专栏高性能服务器开发

    数据库进阶3 Mysql 性能优化20个原则(1)

    今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。 当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。 请看下面的示例: 1// 查询缓存不开启 2$r = mysql_query("SELECT username FROM user WHERE signup_date >= CURDATE()"); 3 查看rows列可以让我们找到潜在的性能问题。 3. 在这种情况下,加上 LIMIT 1 可以增加性能。这样一样,MySQL数据库引擎会在找到一条数据后停止搜索,而不是继续往后查少下一条符合记录的数据。

    54210发布于 2018-07-25
  • 来自专栏PawSQL,在线的自动化SQL优化工具!

    PawSQL数据库性能巡检平台 (3) - 慢查询采集和优化

    数据库运维管理中,慢查询一直是影响系统性能的重要因素。本文将详细介绍PawSQL数据库性能巡检平台在慢查询管理和优化方面的功能特性,帮助数据库管理员更好地应对性能挑战。 通过管理台的慢查询趋势图,用户可以直观地了解数据库性能状况,并进行深入分析。 ,为数据库性能优化提供了全面的解决方案。 平台不仅能够帮助识别性能问题,还能提供具体的优化方案和验证机制,有效提升数据库性能管理效率。 ,以及openGauss,人大金仓、达梦等国产数据库,为开发者和企业提供一站式的创新SQL优化解决方案;有效解决了数据库SQL性能及质量问题,提升了数据库系统的稳定性、应用性能和基础设施利用率,为企业节省了大量的运维成本和时间投入

    32010编辑于 2024-11-12
  • 来自专栏Linyb极客之路

    Java性能微调之数据库性能

     大部分Java系统性能问题基本上是由于错误的数据库访问方式引起的,带来了大量额外日志和内存消耗,这些都会对JVM的垃圾回收造成冲击影响,本文主要针对这种错误的数据库访问方式进行分析和诊断。 SELECT * FROM hat WHERE catID = 1 SELECT * FROM hat WHERE catID = 2 SELECT * FROM hat WHERE catID = 3 这种因为不同的catID参数值不同,但是SQL语句相同的情况执行N多次,不如一次性使用批查询更加快捷: SELECT * FROM hat WHERE catID IN (1, 2, 3, 4, 5, 这就是典型的数据库N+1性能问题。除了使用SQL批查询,也可以使用缓存减少每个对象从SQL语句构造消耗的时间,或者使用O/R映射框架如Hibernate的懒加载。 使用join查询虽然能够快速获得性能提升,但是可扩展性很差,join涉及的库表必须放在一个数据库服务器中,将来如果访问量负载更大,就无法分库分表了,丧失了扩展性Scalable,NoSQL数据库与关系数据库的主要区别就在于

    76210发布于 2018-09-27
  • 来自专栏叨叨软件测试

    性能测试--3性能测试过程

    POC一般来说,会包含以下几个部分:1、为了验证概念所需的技术架构,如Framework、Pattern;2、利用UML语法所建构的概念模型;3、模拟解决方案;4、可被实际执行的解决方案原型(Prototype Windiff、ExamDiff Pro from prestoSoft、WinMerge); 完成针对输入和运行时数据需求的识别,以及所有对脚本必需的修改后,还要确定事务能够在单用户和多用户的条件下正确的回放(数据库更新 关键任务的时间尺度指导: 录制性能测试脚本: 每个事务需要半天的时间; 创建验证测试阶段或者测试场景: 一般需要一到两天; 执行性能测试时间: 需要至少五天时间(验证问题的测试是未知数; 数据库重建也会耗时很多 第五步:执行性能测试 执行性能测试仅仅是验证软件的性能目标。 ); 执行负载测试时,下一次负载测试前,执行重置数据库(保证性能基线); 负载测试中发现的问题,需要单独进行测试(考虑计划时,需要安排额外的时间); 渗透测试(疲劳测试)发现内存泄露或者发现与高数据交互事务执行相关的问题

    4.9K20发布于 2020-04-14
  • 来自专栏xingoo, 一个梦想做发明家的程序员

    oracle数据库性能

    性能视图V$开头 V$SYSTEM_EVENT 正在等待的资源的系统信息 V$SESSION_EVENT 会话累计发生的等待事件 V$SESSION_WAIT 会话正在等待或者曾经等待的详细时间信息 V 不具有冗余磁盘阵列 RAID-1 数据的全拷贝 RAID-0+1 结合了RAID-1 一对一的映射与 RAID-0的磁盘列 RAID-3 通过阵列中的单个磁盘上保存奇偶信息来提供冗余特性。 oracle使用SGA: 1 对包含表和索引数据的数据块进行缓存,并放在数据库高速缓存中 2 对被解析和被优化的SQL语句,存储过程以及数据词典信息进行缓存,并放在共享内存池中 3 日志信息写入磁盘钱, (如果命中率低于90%,增加初始化DB_CACHE_SIZE可以提高性能) 共享内存池: 存储发送给数据库的SQL语句以及执行SQL语句所需的数据字典信息 redo日志缓存: 在一个事务提交后,或者当日志缓存被写满三分之一的时候 作为SQL执行的一部分的排序记录所占用的内存 timesTen 内存数据库通过减少数据库获取操作的时延进而提供最佳性能

    1.2K70发布于 2018-01-18
  • 来自专栏自动化测试实战

    Jmeter性能测试 -3

    测试环境和生产环境不同,该如何做性能测试呢? 答:通过多次压测来计算性能损耗 进程与线程 1、进程 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。简单来说就是进程是可以独立运行的。 3、区别 1)一个线程只能属于一个进程,而一个进程可以有多个线程; 2)线程是进程工作的最小单位; 3)一个进程会分配一个地址空间,进程与进程之间不共享地址空间,即不共享内存; 4)同一个进程下的多个不同线程共享父进程的地址空间 进程的优点 1)每个进程相互独立,不影响主程序的稳定,子进程崩溃不影响其他进程 2)通过增加CPU就可以扩充性能【但损耗也会递增】 3)可以尽量减少线程加锁与解锁的影响,极大的提高了性能 进程的缺点 1 二、实时监控 - CPU mpstat:可以查看多核心CPU中每个计算核心的统计数据(前面3个命令不可以)。

    67430编辑于 2022-02-25
  • Vue 3性能优化

    Vue 3 相较于 Vue 2 在底层进行了诸多优化(例如使用了 Proxy 进行响应式系统重构、编译时优化等),但开发者仍需遵循最佳实践才能发挥其最大性能。 以下是 Vue 3 性能优化的核心技巧和最佳实践:一、 编译时和渲染优化1. 使用 v-if 代替 v-show (按需渲染)优化点: 减少初始渲染和内存消耗。 利用 Vue 的编译优化(Template 编写规范)Vue 3 编译器会自动进行静态提升(Static Hoisting)和块树(Block Tree)优化。 避免: 不要使用数组索引 index 作为 key,除非列表项永远不会变动、新增或删除,否则会导致性能问题和状态错误。二、 响应式系统优化4. 虚拟列表 (Virtual Scroller)优化点: 解决渲染大量列表数据(如超过 1000 条)时的性能问题。

    37810编辑于 2025-10-24
  • 来自专栏python3

    AS3性能优化

    本篇文章用来总结本人对AS3性能优化方面的认识及经验,可能会有一些错误,敬请不吝赐教.如果想了解更多,请参考ADOBE方面的相关只是介绍. 1,关于显示对象:     shape -> sprite <MyClass>(20); 3,关于对象池: 缓存一些相同的对象,以便于随时调用.这里强调一些事情:     ①:缓存的对象数目:很对情况下,读段时间这个对象可能要用10个,可能要8个,可能12个. ......还是用public字段吧. 9,关于显示对象的visible     很多时候,AS3程序员都喜欢把不用的显示对象设为visible = false,这是可以的.但是从Flash Player 要提高性能,请在对 setPixel() 或 setPixel32() 方法进行多次调用之前和之后使用此方法及 unlock() 方 法。 注: 如果处理的是位图 (而不是显示列表)中的像素 (双缓冲),有时该技术不会提高性能。如果位图对象没有引用位图缓冲 区,则使用 lock() 和 unlock() 不会提高性能

    1.1K10发布于 2020-01-10
  • 来自专栏迁移内容

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

    索引对于良好的性能非常关键。尤其是当表中的数据量越来越大时,索引对性能的影响愈发重要。 一、索引的类型 在MySQL中,索引是在存储引擎层而不是服务器层实现的。 三、高性能的索引策略 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
  • 来自专栏公众号:Lucifer三思而后行

    3 万字,关系型数据库性能体系,设计和效率提升

    目录 前言 一、预期的读者和阅读建议 二、数据库模型设计规范 1、数据库建模原则性规范 2、实体型之间关系认定规范 3、范式化 1NF 的规范 4、范式化 2NF 的规范 5、范式化3NF的规范 6、反范式化冗余字段使用规范 用以指导关系型数据库的设计和开发,突出性能是设计出来的,证明质量也是可以设计出来的。 只要理解透这篇,关系型数据库性能提升 30% 不是问题! 3、表分区的优缺点 表分区有以下优点: 改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度。 3、索引设计规范 索引是从数据库中获取数据的最高效方式之一,95% 的数据库性能问题都可以采用索引技术得到解决。 删除或禁用唯一性约束通常同时使相关联的唯一索引失效,因而降低了数据库性能

    2.3K22编辑于 2021-12-30
  • 来自专栏用户3288143的专栏

    数据库】MySql性能监控

    运维工作偏多一些,但是sql性能要开发人员注意 MySql性能监控 慢查询-默认1s 10s太慢了 被慢查询记录到日志 全表扫描,没建索引,因此被记录到日志 有索引,不会被记录到日志 linux下的MySQL命令 数据库测试 调整客户端的链接数量 此数值,通过改变线程请求数,成功率最大的情况 根据异常设置恰当的值 my.ini设置mysql服务端的链接数值 查询缓存 开启缓存设置大小

    2.4K21发布于 2020-07-07
  • 来自专栏Golang语言社区

    数据库性能优化(MySQL)

    11.2 正确使用索引 在影响数据库查询性能的众多因素中,索引绝对是一个重量级的因素,如果索引使用不当,则数据库的其它优化可能无济于事。 通过以上3种时机可以对比出它们的可靠性和性能。 11.5 使用查询缓存 查询缓存就是将select查询结果放在内存中,key是select语句,value是该查询语句的结果。 通常遵循到3NF即可,3NF就是非主键字段之间不能存在依赖关系,这样可以避免删除、更新、插入异常,保持关系的一致性,减少数据冗余。 当然,为了保证数据库性能可以异步写数据。若不想反范式则可以使用非关系型数据库。 11.9 使用非关系数据库 key-value数据库使用半结构化存储数据,所有数据只有一个索引即key,可以将反范式化引发的数据副本保存到key-value数据库中,这样比关系数据库具有更出色的并发性能

    3.9K80发布于 2018-03-23
  • 来自专栏Linux运维

    数据库性能监控:利用 Prometheus 工具监控性能

    数据库性能监控是保障业务稳定性与可扩展性的核心环节。 一、为什么选择Prometheus监控数据库⭐Prometheus的优势拉取式采集模型(Pull):避免被动推送带来的不可控性。多维度数据模型:适合复杂数据库指标分析。 三、常见数据库Exporter选择数据库类型Exporter名称说明MySQLmysqld_exporter官方维护,指标最丰富PostgreSQLpostgres_exporter支持自定义SQL监控 五、关键数据库性能指标(通用)1.性能指标QPS/TPS:每秒查询/事务数查询延迟(latency)慢查询数量连接数与连接池使用率2.资源指标CPU使用率内存占用磁盘IOPS/吞吐网络流量3.数据库特有指标 展开代码语言:TXTAI代码解释rate(redis_commands_processed_total[1m])2.内存使用展开代码语言:TXTAI代码解释redis_memory_used_bytes3.

    36910编辑于 2026-01-19
  • 来自专栏Java进阶

    如何优化数据库性能

    1、硬件调整性能  最有可能影响性能的是磁盘和网络吞吐量,解决办法  扩大虚拟内存,并保证有足够可以扩充的空间;把数据库服务器上的不必要服务关闭掉  把数据库服务器和主域服务器分开  把SQL数据库服务器的吞吐量调为最大   在具有一个以上处理器的机器上运行SQL  2、调整数据库  若对该表的查询频率比较高,则建立索引;建立索引时,想尽对该表的所有查询搜索操作, 按照where选择条件建立索引,尽量为整型键建立为有且只有一个簇集索引 3、使用存储过程 应用程序的实现过程中,能够采用存储过程实现的对数据库的操作尽量通过存储过程来实现,因为存储过程是存放在数据库服务器上的一次性被设计、编码、测试,并被再次使用,需要执行该任务的应用可以简单地执行存储过程 因为人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,特别是对数据量不是特别大的数据库操作时,是否建立索引和使用索引的好坏对程序的响应速度并不大,因此程序员在书写程序时就忽略了不同的实现方法之间可能存在的性能差异 ,这种性能差异在数据量特别大时或者大型的或是复杂的数据库环境中(如联机事务处理OLTP或决策支持系统DSS)中表现得尤为明显。

    2.3K50发布于 2019-02-20
  • 来自专栏小麦苗的DB宝专栏

    GreenPlum的数据库性能

    1.数据库性能 1.1.系统性能 管理系统性能包括度量性能、确定性能问题的原因以及应用可用的工具和技术来解决问题。 Greenplum基于数据库管理系统(DBMS)提供给请求者信息的速率来衡量数据库性能。 有多个关键性能因素会影响数据库性能。 在设置性能目标时考虑以下两点: 基线硬件性能 性能基准 基线硬件性能 大部分的数据库性能问题并非由数据库而是数据库所运行的底层系统导致。I/O瓶颈、内存问题以及网络问题都能显著地降低数据库性能3.识别硬件和Segment失效 Greenplum数据库性能取决于它所运行的硬件和IT基础设施。 Greenplum数据库由多台服务器(主机)构成,它们作为一个紧密的系统(阵列)一起工作。 在Q1和Q2仍在运行时,用户ADHOC3提交查询Q3,使用默认的500MB。 查询Q1和Q2已经用掉了队列的1500MB中的1300MB。因此,Q3在能运行前必须等待Q1或者Q2完成。

    1.2K40编辑于 2023-11-01
  • 来自专栏ThoughtWorks

    性能优化那些事儿(3

    在讨论完性能优化的方面和策略之后,这次我们的文章更偏向技术层面,来分享下如何开发一个自己的性能分析工具(基于JVM)。 ASM的学习是有难度的,需要对字节码有所了解,但由于其性能优秀,被各种工具作为修改字节码的首选,比如大家熟悉的Cglib。 好了,介绍完Instrumentation和ASM,我们是不是就可以满足制作性能分析工具的前提条件了呢? 开源 最终开源的性能分析工具可以在这里找到:https://github.com/tmtbe/PVisualization,配合改造后的JVM-SANDBOX,可以实现360度无死角的性能链路追踪分析, 原图链接:https://github.com/tmtbe/PVisualization/raw/master/source/img.png ---- - 相关阅读 - 性能优化那些事儿(1) 性能优化那些事儿

    43030编辑于 2022-04-08
  • 来自专栏Linux运维

    数据库性能监控:利用 Grafana 工具监控性能

    数据库性能监控是保障系统稳定性、可用性与可扩展性的核心环节。随着业务规模增长、数据量持续攀升,数据库性能瓶颈往往成为系统的关键短板。 一、为什么要监控数据库性能数据库作为核心存储系统,其性能直接影响:查询响应时间业务吞吐量系统稳定性故障恢复能力用户体验常见数据库性能问题包括:慢查询导致响应延迟CPU/IO资源耗尽连接数耗尽索引缺失或失效锁等待与死锁缓存命中率低通过 Grafana构建可视化监控体系,可以实现:实时掌握数据库运行状态快速定位性能瓶颈及时发现异常趋势通过历史数据分析优化策略构建自动化告警体系️二、Grafana数据库监控整体架构典型架构如下:展开代码语言 2.直接连接数据库(不推荐)Grafana也支持直接连接MySQL/PostgreSQL,但不适合监控场景,因为:无法提供时序指标查询压力会影响数据库性能五、构建数据库监控面板(Dashboard)Grafana 3.历史数据分析利用Grafana的时间范围选择功能,分析:高峰期性能变化版本升级前后对比优化措施效果验证4.与自动化运维结合如:自动扩容自动重启自动清理缓存或日志八、总结利用Grafana构建数据库性能监控体系

    24710编辑于 2026-01-19
  • 来自专栏啄木鸟软件测试

    软件性能测试(连载3

    1.5性能测试环境 性能测试对环境是非常重要的,特别是网络环境。 ? 图3-13 测试环境与工作环境在一起 ? 在图3-14中,测试环境各个客户端在两个不同的网段下进行(这里是C类网),大家都知道跨网段是需要路由的,路由里面有软件,会干扰性能测试的数据,从而也会造成测试数据不准确。图3-15的环境是正确的。 图3-15 正确的性能测试环境 1.6 观察性能的四个维度 图3-16展示的是通过终端用户、系统运维人员、软件设计开发人员和性能测试人员四个维度来观察系统的性能。 ? 图3-16 观察性能的四个维度 1.从终端用户角度看性能 对于最终用户,性能主要体现在响应时间,第4.1节介绍性能响应时间包括响应时间=用户响应时间+前端响应时间+网络响应时间+服务器端响应时间+数据库响应时间 4)数据库数据库表设计是否高效。 •是否引入必要的索引。 •SQL 语句的执行计划是否合理。 •SQL 语句除了功能是否要考虑性能要求。 •数据库是否需要引入读写分离机制。

    93620发布于 2020-02-19
  • 来自专栏python3

    Flash AS3 性能优化

    Adobe 官方性能优化文档,很全面,非常好! http://help.adobe.com/zh_CN/as3/mobile/index.html http://www.rozengain.com/blog/2007/05/01/some-actionscript -30-optimizations/ 【Flash性能优化的一些细节概要:,是否在没有必要的时候做了无用功,往往从这些方面就能找到那些导致性能低下的地方。 3、权衡程序的结构 程序的架构也非常重要,良好的结构会带来性能和程序健壮性的提升,但是有的时候又是相互矛盾的,例如代码写得过于健壮,反而会影响性能,这个地方需要开发者自己去权衡。 这个和as3刚出现时大家说的,能uint就uint完全不一致,uint甚至无法超过number。

    93320发布于 2020-01-10
领券