数据库调优的几种方法

1.性能调优有哪些手段 但是对大型的业务系统,特别是大数据量的分析计算过程,可以把数据处理换成在数据库中进行处理,减少网络传输,性能也会提升,所以应该不同的应用场景选择更合适的处理方式。数据库连接池存在的意义是让连接复用,通过建立一个数据库连接池(缓冲区)以及一套连接使用、分配、管理策略,使用的该连接池中的连接可以得到高效、安全的复用,避免了数据库连接频繁建立、关闭的开销。空间换时间:内存、缓存就是典型的空间换时间的例子。性能分析是一个大课题,不同的架构、不同的应用场景、不同的程序语言分析的方法若有差异,抽象一下大致分为两类。 阅读详情

转载自:http://www.myfreelinux.com/?p=538

1.引言    
    数据库调优可以使数据库应用运行得更快,它需要综合考虑各种复杂的因素。将数据均 匀分布在磁盘上可以提高I/O 利用率,提高数据的读写性能;适当程度的非规范化可以改善 系统查询性能;建立索引和编写高效的SQL 语句能有效避免低性能操作;通过锁的调优解 决并发控制方面的性能问题。     数据库调优技术可以在不同的数据库系统中使用,它不必纠缠于复杂的公式和规则,然 而它需要对程序的应用、数据库管理系统、查询处理、并发控制、操作系统以及硬件有广泛 而深刻的理解。

 2.计算机硬件调优

2.1 数据库对象的放置策略     利用数据库分区技术,均匀地把数据分布在系统的磁盘中,平衡I/O 访问,避免I/O 瓶 颈:    
    (1)访问分散到不同的磁盘,即使用户数据尽可能跨越多个设备,多个I/O 运转,避免 I/O 竞争,克服访问瓶颈;分别放置随机访问和连续访问数据。    
    (2)分离系统数据库I/O 和应用数据库I/O,把系统审计表和临时库表放在不忙的磁盘 上。    
    (3)把事务日志放在单独的磁盘上,减少磁盘I/O 开销,这还有利于在障碍后恢复,提 高了系统的安全性。    
    (4)把频繁访问的“活性”表放在不同的磁盘上;把频繁用的表、频繁做Join的表分别 放在单独的磁盘上,甚至把频繁访问的表的字段放在不同的磁盘上,把访问分散到不同的磁 盘上,避免I/O 争夺。

2.2 使用磁盘硬件优化数据库
     RAID (独立磁盘冗余阵列)是由多个磁盘驱动器(一个阵列)组成的磁盘系统。通过将磁盘阵列当作一个磁盘来对待,基于硬件的RAID允许用户管理多个磁盘。使用基于硬件的 RAID与基于操作系统的RAID相比较,基于硬件的RAID能够提供更佳的性能。如果使用基于操作系统的RAID,那么它将占据其他系统需求的CPU周期;通过使用基于硬件的RAID, 用户在不关闭系统的情况下能够替换发生故障的驱动器。    
SQL Server 一般使用RAID等级0、1  和5。   
    RAID 0 是传统的磁盘镜象,阵列中每一个磁盘都有一个或多个磁盘拷贝,它主要用来 提供最高级的可靠性,使RAID 0成倍增加了写操作却可以并行处理多个读操作,从而提高 了读操作的性能。
    RAID 1 是磁盘镜像或磁盘双工,能够为事务日志保证冗余性。
    RAID 5带奇偶的磁盘条带化,即将数据信息和校验信息分散到阵列的所有磁盘中,它可以消除一个校验盘的瓶颈和单点失效问题,RAID 5 也会增加写操作,也可以并行处理一个读操作,还 可以成倍地提高读操作的性能。    
    相比之下,RAID 5 增加的写操作比RAID 0 增加的要少许多。在实际应用中,用户的读操作要求远远多于写操作请求,而磁盘执行写操作的速度很快,以至于用户几乎感觉不到增加的时间,所以增加的写操作负担不会带来什么问题。在性能较好的服务器中一般都会选择使用RAID 5 的磁盘阵列卡来实现,对于性能相对差一些的服务器也可利用纯软件的方式来实现RAID 5。

3.关系系统与应用程序调优
    3.1 应用程序优化     从数据库设计者的角度来看,应用程序无非是实现对数据的增加、修改、删除、查询和体现数据的结构和关系。设计者在性能方面的考虑因素,总的出发点是:把数据库当作奢侈 的资源看待,在确保功能的同时,尽可能少地动用数据库资源。包括如下原则:    
(    1)不访问或少访问数据库;    
    (2)简化对数据库的访问;    
    (3)使访问最优;    
    (4 )对前期及后续的开发、部署、调整提出要求,以协助实现性能目标。   
     另外,不要直接执行完整的SQL  语法,尽量通过存储过程来调用SQL Server。客户与服务器连接时,建立连接池,让连接尽量得以重用,以避免时间与资源的损耗。非到不得已, 不要使用游标结构,确实使用时,注意各种游标的特性。

3.2  基本表设计优化
     在基于表驱动的信息管理系统中,基本表的设计规范是第三范式。第三范式的基本特征 是非主键属性只依赖于主键属性。基于第三范式的数据库表设计具有很多优点:一是能消除 冗余数据、节省磁盘存储空间;二是有良好的数据完整性限制(基于主外键的参照完整限制 和基于主键的实体完整性限制),这使得数据容易维护、移植和更新;三是数据的可逆性好, 在做连接查询或者合并表时不遗漏、不重复;四是消除了冗余数据(这里主要指冗余列), 使得查询时每个数据页存储的数据行增多,这样就有效地减少了逻辑I/O,同时也减少了物 理I/O;五是对大多数事务而言,运行性能好;六是物理设计的机动性较大,能满足日益增 长的用户需求。
    基于第三范式设计的库表虽然有其优越性,然而在实际应用中有时不利于系统运行性能 的优化:例如需要部分数据时而要扫描整表,许多过程同时竞争同一数据,反复用相同行计 算相同的结果,过程从多表获取数据时引发大量的连接操作,当数据来源于多表时的连接操 作;这都消耗了磁盘I/O 和CPU 时间。特别需要提出的是,在遇到下述情形时,我们要对 基本表进行扩展设计优化:许多过程要频繁访问一个表、子集数据访问、重复计算和冗余数 据,有时用户要求一些过程优先或低的响应时间,为避免以上不利因素,我们通常根据访问 的频繁程度对相关表进行分割处理、存储冗余数据、存储衍生列、合并相关表处理,这些都 是克服这些不利因素和优化系统运行的有效途径。 
    (1)分割表     分割表可分为水平分割表和垂直分割表两种:水平分割是按照行将一个表分割为多个 表,这可以提高每个表的查询速度,但是由于造成了多表连接,所以应该在同时查询或更新 不同分割表中的列的情况比较少的情况下使用。垂直分割是对于一个列很多的表,若某些列 的访问频率远远高于其它列,在不破坏第三范式的前提下将主键和这些列作为一个表,将主 键和其它列作为另外一个表。一种是当多个过程频繁访问表的不同列时,可将表垂直分成几 个表,减少磁盘I/O。通过减少列的宽度,增加了每个数据页的行数,一次I/O 就可以扫描 更多的行,从而提高了访问每一个表的速度。垂直分割表可以达到最大化利用Cache 的目的。 分割表的缺点是要在插入或删除数据时要考虑数据的完整性,用存储过程维护。 
    (2)存储衍生数据     对一些要做大量重复性计算的过程而言,若重复计算过程得到的结果相同,或计算牵扯 多行数据需额外的磁盘I/O 开销,或计算复杂需要大量的C P U 时间,就考虑存储计算结果:若在一行或多行进行重复性计算,就在表内增加列存储结果,但若参与计算的列被更新时, 必须要用触发器或存储过程更新这个新列。总之,存储冗余数据有利于加快访问速度,但违 反了第三范式,这会增加维护数据完整性的代价,必须用触发器立即更新、或存储过程更新, 以维护数据的完整性。

3.3 修改应用技术模式
     引入“中间表”的概念,在实际单据未进入核心业务流程前,采用“中间表”的技术思 路,就是在实际用户操作过程中,实际操作的是一个临时表,在进行数据某个阶段审核(进 入下一个环节)后,将临时表的数据写入正式表,并且删除临时表的数据,这样始终保持用 户操作表的固定的数据量而且控制增长,可以定期清除。     采用临时表技术首先需将要操作的数据集插入到临时表中,这会给系统带来额外的开 销。这里假设临时表中的数据集远小于源数据表中的数据集,因此在进行数据连接操作或对 数据集进行频繁读操作时,系统的性能会提高几倍甚至几十倍不等。    
    并非所有情况都适宜用临时表技术。一般来说,下面两种情况适宜采用临时表技术进行 处理:     
    (1)对数据量较大的表进行连接操作,并且连接操作的结果是一个小结果集。 
    (2)对数据量较大的表进行频繁访问,访问的范围比较固定且比较集中。 
    合理使用临时表技术,有助于提高应用系统对大数据表的实时处理的性能。
4.数据库索引优化    
    索引是建立在表上的一种数据组织,它能提高访问表中一条或多条记录的特定查询效 率。利用索引优化系统性能是显而易见的,对所有常用于查询中的Where  子句的列和所有 用于排序的列创建索引,可以避免整表扫描或访问,在不改变表的物理结构的情况下,直接 访问特定的数据列,这样可以减少数据存取时间;利用索引可以优化或排除耗时的分类操作, 把数据分散到不同的页面上,这样就分散了插入的数据;主键自动建立了唯一索引,因此唯 一索引也能确保数据的唯一性(即实体完整性)。总之,索引可以加快查询速度、减少I/O 操作、消除磁盘排序。     优化索引可以避免扫描整个表,减少因查询造成的开销。一般说来建立索引要注意以下 几点:     
    (1)检查被索引的列或组合索引的首列是否出现在PL/SQL 语句的WHERE 子句中, 这是“执行计划”能用到相关索引的必要条件。比较一下列中唯一键的数量和表中记录的行 数,就可以判断该列的可选择性。如果该列的“唯一键的数量/表中记录行数”的比值越接近 于1,则该列的可选择行越高。在可选择性高的列上进行查询,返回的数据就较少,比较适 合索引查询。相反,比如性别列上只有两个值,可选择行就很小,不适合索引查询。因此, 在查询中经常作为条件表达式且不同值较多的列上建立索引,不同值较少的列上不要建立索 引。     
    (2)索引的创建也是需要代价的,对于删除、某些更新、插入操作,对于每个索引都 要进行相应的删除、更新、插入操作。从而导致删除、某些更新、插入操作的效率变低。因 此频繁进行删除、插入操作的表不要建立过多的索引。     
    (3)查询经常用到的列上建立非聚簇索引,在频繁进行范围查询、排序、分组的列上 建立聚簇索引。     
    (4 )对于不存在重复值的列,创建唯一索引优于创建非唯一索引。     
    (5)当数据库表更新大数据后,删除并重新建立索引来提高查询速度。     
    (6)当对一个表的update 操作远远多于select 操作时,不应创建索引。     
    (7)如果索引列是函数的参数,则索引在查询时用不上,该列也不适合索引。     
    (8)Hash   Join (HJ )由于须做HASH 运算,索引的存在对数据查询速度几乎没有影 响。     
    (9)在主键上建立索引,尤其当经常用它作为连接的时候;在经常用于连接而又未指 定为外键的列上建立索引。    
     (10)经常同时存取多列,且每列都含有重复值,可以考虑建立复合索引来覆盖一个或 一组查询,并且把查询引用最频繁的列作为前导列。                                     
    (11)尽使用较窄的索引,这样数据页每页上能因存放较多的索引行而减少操作。     
    (12)并行查询将不会用到索引。     
    (13)索引中存储值不能为全空。     
    (14)查询中较少用到的列、数据量较大的列均不应建立索引。

5.SQL 语句优化    
    在完成了系统设计、索引设计等工作以后,就要考虑在使用过程中对语句的设计了。 影响数据库应用程序性能的一个重要因素是SQL 语句,按其影响严重程度,依次可分为: 无谓的SQL,拙劣的SQL,复杂的SQL。     无谓的SQL:它们对数据库的访问,并不存在技术、技能上的问题,但却不是必要的, 超出了实际业务需求。其结果是浪费了宝贵的主机资源、占用了网络流量,降低了系统性能。     拙劣的SQL:它们对数据库的访问并不是多余的,所体现的业务逻辑或结果是正确的, 但是“写法”不够好,导致数据库处理起来不够优化。     复杂的SQL:数据库中多表(或视图)关联,条件复杂、冗长,计算复杂,使用冷僻 的SQL 技术等。     其中,无谓的SQL 和拙劣的SQL 属于开发技能方面的问题;复杂的SQL 属于设计技 能方面的问题,设计到数据库的结构。     在使用结构化查询语言来执行查询时,推荐以下举措:    
    (1)择运算应尽可能先做,并在对同一个表进行多个选择运算时,选择影响较大的语 句放在前面;较弱的选择条件写在后面,这样就可以先根据较严格的条件得出数据较小的 信息,再在这些信息中根据后面较弱的条件得到满足条件的信息。    
    (2)应避免使用相关子查询。把子查询转换成联结来实现。对于主查询的每一条记录子 查询都要执行一次,嵌套的层次越多效率越低。避免对子句使用数学运算符。即不要对数 据表的属性列进行操作。SQL 概念上将位于WHERE  子句中的相关子查询,处理成获取参 数并且返回一个单独的值或值的集合的函数。因为子查询要对应位于外层查询的每一个元组 进行单独的计算。从而导致大量的随机磁盘I/O 操作。所以在实际应用中若可以用连接代替 的子查询,则用连接实现。例如,有以下相关子查询语句:    
SELECT ProductName FROM Products WHERE EXISTS     (SELECT * FROM OrderDetails     WHERE     Discount >= 25 AND  Products.ProductID= OrderDetails.ProjectID) ;    
用连接查询实现如下:    
SELECT   ProductName   FROM    Products , OrderDetails     WHERE Discount >= 25 AND Products.ProductID= OrderDetails.ProjectID    
    (3)字段提取按照“ 需多少,提多少” 的原则,避免“SELECT *”。“SELECT *”需 要数据库返回相应表的所有列信息,这对于一个列较多的表无疑是一项费时的操作。    
    (4)避免使用!=(或<>)、IS NULL 或IS NOT NULL、IN、NOT IN等这样的操作符,避免在WHERE 子句中使用非聚合表达式。这些操作符会使系统无法使用索引,而只能直接搜 索表中的数据。例如,SELECT id,name FROM employee WHERE id!=B%      优化器将无法通过索引来确定将要命中的行数,因此需要搜索该表的所有行。    
    (5)避免使用OR,用UNION 代替。OR 语句的执行原理并不是利用列上的索引根据每 个语句分别查找再将结果求并集,而是先取出满足每个OR 子句的行,存入临时数据库的 工作表中,再建立唯一索引以去掉重复行,最后从这个临时表中计算结果。这样使用可能 造成索引失效,导致顺序扫描整个表,大大降低查询效率。    
    (6)在执行连接前对关系作适当的预处理,预处理的方法有两种,在连接属性上建立 索引和对关系进行排序。    
    (7)将一个大的查询拆成多步执行查询。    
    (8)如果应用程序使用循环,可考虑在查询内放入循环。
6.事务处理调优    
    数据库的日常运行过程中可能面临多个用户同时对数据库的并发操作带来的数据不一 致的问题,如:丢失更新、脏读和不可重复读等。并发控制的主要方法是封锁,锁就是在一段时间内禁止用户做某些操作以避免产生数据不一致。    
    数据库应用程序将其工作分成若干个事务进行处理。当一个事务执行时,它访问数据库 并执行一些本地计算。开发人员可以假设每一个事务都会被隔离地执行—没有任何并发动 作。因为隔离的概念提供了透明性,这种对事务处理方式的保证有时被称为原子性保证。但 是,如果把应用程序中的事务序列作为一个整体来看,则并没有上面所说的那种保证。在一 个应用程序执行的两个事务之间,可能会执行另外一个应用程序的事务,而且第二个应用程 序的执行可能修改了第一个应用程序中的两个事务(或其中的一个)需要访问的数据项。因 此,事务的长度对保证正确性有着重要影响。    
    尽管将事务切分成较小粒度可以提高执行效率,但会因此破坏执行的正确性。这种性能 和正确性之间的矛盾充斥并发控制的整个调优过程。考虑事务的性能我们要考虑到:事务使 用的锁的个数(在所有其他条件相同的情况下,使用的锁个数越少,性能越好);锁的类型  (读锁对性能更有利);事务持有锁的时间长短(持有时间越短,性能越好)。
    关于锁的调优 有以下建议:
   (1)使用特殊的系统程序来处理长的读操作。对于一个只读的事务R 来说,它“看到” 的数据库的状态一直是事务R  开始时的状态。只读查询可以不需要封锁开销,在不造成阻 塞和死锁的情况下,只读的查询可以与其他对同一数据进行更新的较小的事务并行地执行。
   (2)消除不必要的封锁。只有一个事务执行时,或所有事务都是只读事务时,用户应 利用配置选项减少锁的个数,从而减小锁管理模块的内存开销和执行封锁操作的处理时间开 销。
   (3)根据事务的内容将事务切分成较小的事务。事务所要求的锁越多,它需要等待其 他事务释放某个锁的可能就越大。事务T 执行的时间越长,被T  阻塞的事务等待的时间可 能就越长。因此,在可能发生阻塞的情况下,利用较短的事务较好。     
    (4 )在应用程序允许的情况下,适当降低隔离级别。     
    (5)选择适当的封锁粒度。页级封锁阻止并发事务访问或修改该页面上所有记录,表 级封锁阻止并发事务访问或修改表内所有的页面;记录级封锁(行级锁)比页级封锁粒度好, 页级封锁比表级封锁粒度好。长事务(指要访问表内几乎所有页面的事务)应该尽可能使用 表级封锁来防止死锁,而短事务应该使用记录级封锁来提高并发度。     
    (6)只在数据库很少被访问时才修改有关数据定义的数据(系统目录或元数据)。每个 能够编译、添加或删除表、添加或删除索引、改变属性定义的事务都必须访问目录数据,因 此,目录很容易成为热点,也因而成为瓶颈。     
    (7)减少访问热点(大量事务访问和更新的数据)。只有在更新某热点的事务完成滞后, 其他的事务才能获得这个热点上的锁,因此热点可能成为瓶颈。     
    (8)死锁检测周期的调优。    
     以上每个建议都可以独立于其他建议来运用,但是在调优时必须检测是否能体现合适 的隔离性保证。

7.总结    
    数据库性能优化的基本原则就是通过尽可能少的磁盘访问获得所需要的数据。本文从计 算机硬件、关系系统与应用程序、数据库索引、SQL  语句、事务处理几个比较共性的方面 分析了数据库性能优化的问题,  提出了若干数据库性能优化的策略。当然实现优化的方法还 有很多,  要根据具体情况而定。对于不同的应用情况,我们应该具体情况具体分析,  各方面优 化措施综合运用,  以使数据库性能得到提高。数据库应用系统的性能是一项全民工程,开发 团队的所有人都有责任为性能做贡献,树立性能意识,使之成为日常工作的习惯而不是单独 成为某一阶段的工作,要未雨绸缪,不要寄希望于某一个环节的工作。

Kettle性能调优 1.调整提交记录数量进行调优:默认为1000,可根据数据量大小来设置为1000~50000,但是如果表字段多,varchar和char字段多size又大,可适当改小,不然会报错。 2.调整记录集合里的记录数: 3.调整java虚拟机大小来进行kettle性能优化:修改Kettle定时任务中的Kitchen或Pan或Spoon脚本 set OPT=-Xmx512m -cp %CLASSPATH% -Djava.library.path=libswt\win32\ -DKETTLE_HOME... 阅读详情

相关推荐

【数据仓库面试题合集④】SQL 性能调优:面试高频场景 + 调优策略解析

在数据仓库岗位的面试中,SQL性能调优是重点考察内容。本文整理了高频面试题及答题参考,帮助应聘者更好地应对面试。常见问题包括如何排查慢SQL、优化JOIN操作、处理数据倾斜、利用分区加速查询以及SparkSQL中的性能调优参数。排查慢SQL时,需关注执行计划、扫描行数、索引命中情况等;优化JOIN操作可通过小表广播、分桶、预聚合等方式;处理数据倾斜可采用随机前缀、skewjoin等方法;分区加速查询需合理建表并明确指定分区字段…

晴天彩虹雨的博客 1686

数据库的8种优化方式

本文通过8个方法优化Mysql数据库:创建索引、复合索引、索引不会包含有NULL值的列、使用短索引、排序的索引问题、like语句操作、不要在列上进行运算、不使用NOT IN和操作

soulworld的博客 1万+

海山数据库(He3DB)+AI(三):旋钮调优问题综述

在数据库优化问题中,旋钮调优(knob tuning)对系统的性能或资源利用起着至关重要的作用,该问题面临如下挑战:1)数据库配置中有成千上百的旋钮配置,如何确定哪旋钮会影响数据库的性能和资源使用?2)面对巨大的搜索空间,如何在有限时间内找到合适的配置参数?3)随着云服务的增长,需要为各种情况如不同的应用程序、数据集和硬件,调整大量的数据库实例,如何应对越来越棘手的情况? 随机机器学习的发展,越来越多基于学习的调参方法被提出,其主要思想是搜集旋钮配置及对应的性能数据,让模型去训练学习,使得在遇到相似场景时

He3DB_ht的博客 1087

提高数据库性能的10个最简单方法

众所周知SQL SERVER是微软的数据库拳头产品,有着图形化友好界面、操作门槛低、部署难度小,一键式安装的特点,受到全球开发者及企业的青睐。从历代版本说起,经典2000版本是划时代的里程碑作品,至今还能在各种财务软件、ERP偶遇一回。 但随着软件的升级换代,早期的2000版本从性能、功能上已经难以满足现行需求的发展,随之出现了2005、2008、2008R2、2012、2014、2016、2017、2019版本,2005和2008作为2000的实力升级版本,已经在数据库界扛了多年把子。当然,也经

huang714的专栏 6790

Oracle数据库 数据库调优

文章目录一、数据库调优的目标二、确定调优目标的方式1. 用户的反馈2. 日志分析3. 服务器资源使用资源4. 数据库内部状况监控三、数据库的调优维度1. 选择合适的DBMS2. 优化表设计3. 优化逻辑查询4. 优化物理查询5. 使用 Redis 或 Memcached6. 库级优化四、SQL语句优化 一、数据库调优的目标 简单来说,数据库调优的目的就是要让数据库运行得更快,也就是说响应的时间更快,吞吐量更大。 不过随着用户量的不断增加,以及应用程序复杂度的提升,我们很难用“更快”去定义数据库调优的目标,因

小曹同学的博客 2412

软件测试面试题汇总

软件测试面试题汇总 测试技术面试题 ........................................................................................................................................................................ 5 1、什么是兼容

晴天的专栏 2万+

优化数据库的八种经典方式

MySQL数据库优化的八种方式(经典必看) 引言: 关于数据库优化,网上有不少资料和方法,但是不少质量参差不齐,有些总结的不够到位,内容冗杂 偶尔发现了这篇文章,总结得很经典,文章流量也很大,所以拿到自己的总结文集中,积累优质文章,提升个人能力,希望对大家今后开发中也有帮助 1、选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得.

qq_36627117的博客 2万+

Qupath软件的安装与使用

Qupath软件的安装与使用软件安装软件下载软件安装【windows版】简单使用文件打开人工标注标注导出和导入 Qupath是一款开源的医学图像标注软件,适合放射影像及数字病理切片等的查看。同时,其自带的标注功能使得医生可以直接通过该软件进行病变区域的标注和分类。跟进一步的,该软件提供groovy脚本运行接口,可供操作者编写和运行脚本,将标注信息转换为xml或者json格式的数据进行进一步的后序处...

qq_40662074的博客 3万+

数据库调优的方法有那些

1.引言         数据库调优可以使数据库应用运行得更快,它需要综合考虑各种复杂的因素。将数据均 匀分布在磁盘上可以提高I/O 利用率,提高数据的读写性能;适当程度的非规范化可以改善 系统查询性能;建立索引和编写高效的SQL 语句能有效避免低性能操作;通过锁的调优解 决并发控制方面的性能问题。     数据库调优技术可以在不同的数据库系统中使用,它不必纠缠于复杂的公式和规则,然 而它需要对

tuolaji8的专栏 1118

Ubuntu技巧-Ubuntu远程访问之SSH反向代理

💡大家好,我是可夫小子,《小白玩转ChatGPT》专栏作者,关注AIGC、互联网和自媒体。要把内网的一台的Ubuntu服务器让外面也能访问,总共有三种可行的方案,前面已经介绍了两种方式,今天就来介绍更健壮稳定的方式——ssh反向代理。大概的框架图如下,今天就从服务器购买到设置,手把手的教程,让你花费100块以内,就拥有一个强大的「云服务器」。

可夫小子的频道 1153

cdh zookeeper未授权访问(安全漏洞)处理

前言: 最近公司在做安全漏洞扫描。发现cdh zookeeper存在未授权访问的问题。 ZooKeeper的节点有5种操作权限: CREATE、READ、WRITE、DELETE、ADMIN 也就是 增、删、改、查、管理权限,这5种权限简写为crwda(即:每个单词的首字符缩写) 注:这5种权限中,delete是指对子节点的删除权限,其它4种权限指对自身节点的操作权限 ZooKeeper的身份的认证有4种方式: world:默认方式,相当于全世界都能访问 auth:代表已经认证通过的..

belialxing的专栏 2448

不止SQL优化,数据库还有哪些优化大法?

前言 当有人问你如何对数据库进行优化时,很多人第一反应想到的就是SQL优化,如何创建索引,如何改写SQL,他们把数据库优化与SQL优化划上了等号。 当然这不能算是完全错误的回答,只不过思考的角度稍微片面了些,太“程序员思维”化了,没有站在更高层次来思考回答。那今天我们就将视角拔高,站在架构的角度来聊聊这一问题,数据库优化可以从哪些维度入手? 正如上图所示,数据库优化可以从架构优化,硬件优化,DB优化,SQL优化四个维度入手。 此上而下,位置越靠前优化越明显,对数据库的性能提升越高。我们常说的SQ

mxy2404830的博客 4233

ANSYS ICEM CFD 2023R2 结构化网格实战:翼型绕流 10 步生成高质量六面体网格

在计算流体力学(CFD)分析中,网格质量直接决定了仿真结果的精度和收敛性。对于翼型绕流这类典型的外部流动问题,结构化网格因其规则的节点排列和优异的边界层捕捉能力,成为高精度模拟的首选方案。通过在后缘处添加局部H型拓扑,并将过渡区增长率降至1.1,最终使网格质量指标提升40%,计算收敛速度提高2倍。这印证了结构化网格在复杂流动模拟中的不可替代性——虽然初期投入时间较多,但能显著提升计算精度和稳定性。在开始网格划分前,合理的几何准备是确保后续流程顺利的关键。对于翼型绕流,O型网格拓扑能提供最佳的边界层适应性。

weixin_30731305的博客 365

论MySQL的监控和调优

论MySQL的监控和调优 懂PHP的人一般都懂MySQL这一点不假,大多数书籍里也是这样,书中前面讲PHP后面到数据库这块就会讲到MySQL的一些知识,前几年MySQL一直是PHP书籍的一部分,后来开始从国外翻译了一些专门讲述MySQL的书籍。但大多数还是不如MySQL手册里讲的精细。 目前国内也有了一些讲MySQL比较好的数据,我推荐几本大家可以看,一本是《MySQL性能调优与架构设...

liliugen的专栏 202

Allegro172版本如何在联机模式下使用skill文件操作指导

注意:如果下次重新开启Symphony模式的时候可能导致symphony_skill中的文件内容被清空,所以最好将自己常用的skill文件都写到symphony_skill.txt中去,然后做好备份,需要的时候,在开启软件后把文件放到env目录中去。在用Allegeo172版本进行PCB设计的时候,有时会用到Symphony模式进行多人实时在线协同设计,如下图。这个模式设计起来可以提升设计速度,但是也有一个缺陷,就是不能使用skill文件。如下图,当调用skill的时候就会出现如下报错。

weixin_54787054的博客 1587

Python爬虫实战:高效爬取华尔街日报文章的技术与代码详解

在当今信息爆炸的时代,金融数据和分析对于投资者、研究人员和企业决策者来说至关重要。华尔街日报(WSJ)作为全球最具影响力的财经媒体之一,其文章内容具有极高的价值。本文将详细介绍如何使用Python最新技术构建一个高效、稳定的华尔街日报文章爬虫,涵盖从基础到高级的各种技术要点。本文详细介绍了如何使用Python最新技术构建一个高效、稳定的华尔街日报文章爬虫。我们从基础爬虫实现开始,逐步添加了高级功能如分布式处理、反反爬虫策略、数据清洗和存储等。异步处理:使用asyncio和httpx实现高性能网络请求。

2201_76125261的博客 386

JVM常见性能调优

常见的调优办法 (1)线程池:解决用户响应时间长的问题 (2)连接池 (3)JVM启动参数:调整各代的内存比例和垃圾回收算法,提高吞吐量 (4)程序算法:改进程序逻辑算法提高性能 1.Java线程池(java.util.concurrent.ThreadPoolExecutor) 大多数JVM6上的应用采用的线程池都是JDK自带的线程池,之所以把成熟的Java线程池进行罗嗦说明,是因为...

ZCC的专栏 555

机器学习的低代码与无代码平台:便捷入门之路

机器学习领域正涌现出大量低代码和无代码平台,使非技术人员也能轻松应用AI技术。低代码平台(如PyCaret、H2O AutoML)需少量编程但灵活性强,而无代码工具(如Google Cloud AutoML、Teachable Machine)则完全无需编程基础。这些平台覆盖图像识别、文本处理、业务预测等多种场景,适合快速部署简单项目。但专业人士仍需注意,这些工具无法替代复杂场景下的定制化开发。随着技术进步,低门槛AI工具正在改变各行业的创新方式。

2501_90323865的博客 154

oracle 常用调优方法

oracle常用调优方法 Oracle数据库应用系统的调优主要包括十个方面: (1)、优化数据库内存; (2)、在Oracle共享池中固定应用程序代码; (3)、优化数据存储; (4)、优化数据排序的技术; (5)、优化SQL语句; (6)、优化回退段; (7)、优化索引; (8)、优化磁盘I/O; (9)、定期生成数据库对象的状态统计信息; (10)、优化操作系统环境。 其实质就是降低CPU负载、改善I/O性能。 1、化磁盘I/O 数据库的作用就是实现对数据的管理和查询,所以必然存在对数据的大..

spt_dream的博客 4394

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

数据库SQL调优的几种方式

在项目中,SQL的调优对项目的性能来讲至关重要,所有掌握常见的SQL调优方式是必不可少的,下面介绍几种常见的SQL的调优方式,供借鉴. 创建索引 在经常需要进行检索的字段上创建索引,比如要按照表字段username进行检索,那么就应该在姓名字段上创建索引,如果经常要按照员工部门和员工岗位级别进行检索,那么就应该在员工部门和员工岗位级别这两个字段上创建索引。创 建索引给检索带来的性能...

lss0555的博客 15万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

sql调优的几种方式

sql调优的几种方式:避免使用select *、用union all 代替union、小表驱动大表、批量操作、多用limit、in中值太多、增量查询、高效的分页、用链接查询代替子查询、join数量不宜过多、join时需要注意、控制索引的数量、选择合理的字段类型、提升group by的效率、索引优化。

_江屿_ 9246

【数据库】SQL调优的几种方式

SQL调优

带你去吃小豆花的博客 8880

NextCRM AI发票解析原理拆解:从邮件抓取到Rossum OCR再到落库的全链路剖析

NextCRM 是一款基于 Next.js 16 与 Prisma 的开源 CRM 系统,它的 AI 发票解析能力可以将收件箱中的发票附件自动完成 OCR 识别、结构化提取并写入数据库,无需人工录入。本文带你完整拆解这条「邮件抓取 → Rossum OCR → 结构化落库」的自动化流水线,看懂每个环节背后的源码设计。 [![NextCRM 仪表板界面](https://raw.gitcode.c

gitblog_00700的博客 1068

openGauss数据库性能调优概述及实例分析

目录 调优思路概述 调优流程 确定性能调优范围 性能因素 调优范围确定 硬件瓶颈点分析 CPU 内存 I/O 网络 查询最耗性能的SQL 分析作业是否被阻塞 调优思路概述 openGauss的总体性能调优思路为性能瓶颈点分析、关键参数调整以及SQL调优。在调优过程中,通过系统资源、吞吐量、负载等因素来帮助定位和分析性能问题,使系统性能达到可接受的范围。 openGauss性能调优过程需要综合考虑多方面因素,因此,调优人员应对系统软件架构、软硬件配置、数据库配置参数、并发控制、.

Gauss松鼠会 7193

Oracle数据库性能调优指南

Oracle数据库调优

810cheng 2337
上一篇: json串中的对象集合如何转换出来
下一篇: 在页面监听鼠标的事件,超时退出
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值