MySQL 在崩溃恢复时,会遍历打开所有 ibd 文件的 header page 验证数据字典的准确性,如果 MySQL 中包含了大量表,这个校验过程就会比较耗时。 MySQL 下崩溃恢复确实和表数量有关,表总数越大,崩溃恢复时间越长。另外磁盘 IOPS 也会影响崩溃恢复时间,像这里开发库的 HDD IOPS 较低,因此面对大量的表空间,校验速度就非常缓慢。另外一个发现,MySQL 8 下正常启用时居然也会进行表空间校验,而故障恢复时则会额外再进行一次表空间校验,等于校验了 2 遍。不过 MySQL 8.0 里多了一个特性,即表数量超过 5W 时,会启用多线程扫描,加快表空间校验过程。
如何跳过校验MySQL 5.7 下有方法可以跳过崩溃恢复时的表空间校验过程嘛?查阅了资料,方法主要有两种:
1. 配置 innodb_force_recovery可以使 srv_force_recovery != 0 ,那么 validate = false,即可以跳过表空间校验。实际测试的时候设置 innodb_force_recovery =1,也就是强制恢复跳过坏页,就可以跳过校验,然后重启就是正常启动了。通过这种临时方式可以避免崩溃恢复后非常耗时的表空间校验过程,快速启动 MySQL,个人目前暂时未发现有什么隐患。2. 使用共享表空间替代独立表空间这样就不需要打开 N 个 ibd 文件了,只需要打开一个 ibdata 文件即可,大大节省了校验时间。自从听了姜老师讲过使用共享表空间替代独立表空间解决 drop 大表时性能抖动的原理后,感觉共享表空间在很多业务环境下,反而更有优势。
临时冒出另外一种解决想法,即用 GDB 调试崩溃恢复,通过临时修改 validate 变量值让 MySQL 跳过表空间验证过程,然后让 MySQL 正常关闭,重新启动就可以正常启动了。但是实际测试发现,如果以 debug 模式运行,确实可以临时修改 validate 变量,跳过表空间验证过程,但是 debug 模式下代码运行效率大打折扣,反而耗时更长。而以非 debug 模式运行,则无法修改 validate 变量,想法破灭。
B. 支持大型数据库的服务器需要什么配置
选择数据库服务器的原则:
1、高性能原则:保证所选购的服务器,不仅能够满足运营系统的运行和业务处理的需要,而且能够满足一定时期业务量的增长。一般可以根据经验公式计算出所需的服务器TpmC值(Tpmc是衡量计算机系统的事务处理能力的程序)。
后比较各服务器厂商和TPC组织公布的TpmC值,选择相应的机型。同时,用服务器的市场价/报价除去计算出来的TpmC值得出单位TpmC值的价格,进而选择高性能价格比的服务器。
2、可靠性原则:可靠性原则是所有选择设备和系统中首要考虑的,尤其是在大型的、有大量处理要求的、需要长期运行的系统上。考虑服务器系统的可靠性,不仅要考虑服务器单个节点的可靠性或稳定性,而且要考虑服务器与相关辅助系统之间连接的整体可靠性。
(2)数据库很慢时提升服务器什么配置扩展阅读:
优点:
1、编程量减少
数据库服务器提供了用于数据操纵的标准接口API(Application Programming Interface,应用程序编程接 口)。
2、数据库安全高
数据库服务器提供监控性能、并发控制等工具。由DBA(Database Administrator,数据库管理员)统一负 责授权访问数据库及网络管理。
3、数据可靠性管理
数据库服务器提供统一的数据库备份/恢复、启动/停止数据库的管理工具。
4、计算机资源利用充分
数据库服务器把数据管理及处理工作从客户机上分离出来,使网络中各计算机资源能灵活分配、各尽其用。
C. 数据库需要什么配置可以提高效果
这个需要看你具体的业务情况。一般来说,数据库服务器的选择要满足以下几点:
1、高性能
数据库服务器需要高性能,高性能的服务器不仅能满足当前的业务要求,而且
要满足一定时期内的数据及业务的扩增。
2、高可靠性
数据库服务器需要高可靠性,由于数据库服务器是需要不间断运行的,所以需要
确保数据库服务器的系统及硬件都能高效稳定的运行。
这只是建议,具体选型需要结合具体业务。
D. 数据库性能优化有哪些措施
1、调整数据结构的设计。这一部分在开发信息系统之前完成,程序员需要考虑是否使用ORACLE数据库的分区功能,对于经常访问的数据库表是否需要建立索引等。
2、调整应用程序结构设计。这一部分也是在开发信息系统之前完成,程序员在这一步需要考虑应用程序使用什么样的体系结构,是使用传统的Client/Server两层体系结构,还是使用Browser/Web/Database的三层体系结构。不同的应用程序体系结构要求的数据库资源是不同的。
3、调整数据库SQL语句。应用程序的执行最终将归结为数据库中的SQL语句执行,因此SQL语句的执行效率最终决定了ORACLE数据库的性能。ORACLE公司推荐使用ORACLE语句优化器(Oracle Optimizer)和行锁管理器(row-level manager)来调整优化SQL语句。
4、调整服务器内存分配。内存分配是在信息系统运行过程中优化配置的,数据库管理员可以根据数据库运行状况调整数据库系统全局区(SGA区)的数据缓冲区、日志缓冲区和共享池的大小;还可以调整程序全局区(PGA区)的大小。需要注意的是,SGA区不是越大越好,SGA区过大会占用操作系统使用的内存而引起虚拟内存的页面交换,这样反而会降低系统。
5、调整硬盘I/O,这一步是在信息系统开发之前完成的。数据库管理员可以将组成同一个表空间的数据文件放在不同的硬盘上,做到硬盘之间I/O负载均衡。
6、调整操作系统参数,例如:运行在UNIX操作系统上的ORACLE数据库,可以调整UNIX数据缓冲池的大小,每个进程所能使用的内存大小等参数。
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。
在经济管理的日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。
例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个"数据仓库"我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种"数据库",使其可以利用计算机实现财务、仓库、生产的自动化管理。
(4)数据库很慢时提升服务器什么配置扩展阅读
数据库,简单来说是本身可视为电子化的文件柜--存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。
数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度的特点、是与应用程序彼此独立的数据集合。
在经济管理的日常工作中,常常需要把某些相关的数据放进这样的"仓库",并根据管理的需要进行相应的处理。
例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个"数据仓库"我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种"数据库",使其可以利用计算机实现财务、仓库、生产的自动化管理。
E. 为什么在云服务器上操作数据库会卡需要升级配置吗
网站访问卡慢有很多原因,一次完整的 HTTP 请求包括域名解析、建立 TCP 连接、发起请求、云服务器接收到请求进行处理并返回处理结果、浏览器对 HTML 代码进行解析并请求其他资源,以及对页面进行渲染呈现。
其中,HTTP 的请求过程经历了用户本地客户端、客户端到接入服务器之间的网络节点以及服务器。在这三个环节中,任意一个环节出现问题都有可能导致网站访问卡慢。
检查本地客户端
本地客户端访问网络诊断分析系统,测试本地访问各域名的速度。根据测试结果,确认本地网络是否存在问题。
检查网络链路
本地客户端 ping 云服务器公网 IP,确认是否存在丢包或延时高的情况。使用 dig/nslookup 命令,查看 DNS 的解析情况,排查是否 DNS 解析引起的问题。您也可以直接使用公网 IP 访问对应页面,排查是否 DNS 的问题导致访问慢。
检查服务器使用
如果云主机存在 CPU/内存使用过高的情况,或者存在带宽使用过高的情况,判断是否为服务器负载引起的资源消耗增大。CPU 或内存使用率过高,容易引起服务响应速度变慢、服务器登录不上等问题。
如果是因为网站流量或资源太多,建议优化业务程序或升级服务器配置。你也可以通过购买新的服务器,来分担现有服务器的压力。
西部数码云服务器用户可根据不同需求,自由选择vCPU、内存、数据盘、带宽等配置,还可随时不停机升级带宽,1分钟内停机升级vCPU和内存,支撑业务的持续发展。
F. 5G左右的数据库,每天5000IP,服务器大概需要怎么样的配置
5G左右数据库,不算太大,也不算太小了。一般的录入数据库应该不会慢,但是如果是全局查询之类的年度统计报表之类的操作,就让你够呛了。这种对服务器的处理能力,内存容量,硬盘读取性能都有比较高的要求,核心数量和线程数量是多多益善,因为数据库软件对多核心支持都非常好的,核心数线程数越多,计算速度越快。
你可以看看国产品牌正睿的这款最新SNB-E架构的双路四核服务器。标配一颗至强E5-2620六核十二线程处理器(2.0GHz/7.2GT/15M缓存),英特尔C602服务器芯片组主板,8G DDR3 REG ECC 1333MHz内存,SAS 300G 15000转高速企业级硬盘,4个热插拔盘位,允许用户在不关闭服务器的情况下增加或减少硬盘,便于维护,双千兆网卡,性能可以说是非常不错。如果以后随着业务量的增长,觉得性能不够用了,还可以扩展到两颗处理器,达成12颗处理核心,24条处理线程(在任务管理器处能看到24个处理核心的格子- -~很NB),最大支持128GB DDR3 REG ECC高速容错校验内存。
产品型号:I21S2-6784HV
产品类型:双路六核机架式服务器
处 理 器:Xeon E5-2620
内 存:8G DDR3 REG ECC
硬 盘:SAS 300G
机 构:1U机架式
价 格:¥12990
银牌服务
全国三年免费上门售后服务,关键部件三年以上免费质保。
建议你再增加1个SAS硬盘,做raid1阵列保障数据安全,即使坏掉一个硬盘,数据也不会丢失。两个硬盘同时坏掉的可能性就太低啦。
给你推荐的是国产品牌正睿的服务器产品,他们的产品性价比很高,做工很专业,兼容性,质量之类的都有保障,售后也很完善,3年免费质保,3年免费上门售后服务,在业界口碑很不错。
G. 如何选择数据库服务器硬件配置!急
这个....你有没有钱?
按你这么说性能需要提升30倍啊!
需要目前<英特尔>45nm四核至强CPU
不少于2GB的DDR2-1066 ECQ内存(最好能买到低周期的CL 4-4-4-12)
主板买<技嘉>的,这个牌子的服务器主板还是做的不错的!
显卡,用上面主板集成的就行了
硬盘你需要买个上万转的!推荐<西部数据>的!性能不错!
买机箱一定要注意!牢固!结实!
电源买<航嘉>的节能静音的型号,这牌子稳定!省电!
H. 如何加快数据库连接速度
1、升级硬件
2、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。
3、扩大服务器的内存
4、增加服务器CPU个数
5、对于大的数据库不要设置数据库自动增长,它会降低服务器的性能
6、在查询Select语句中用Where字句限制返回的行数,避免表扫描,如果返回不必要的数据,浪费了服务器的I/O资源,加重了网络的负担降低性能。如果表很大,在表扫描的期间将表锁住,禁止其他的联接访问表,后果严重。
7、查询时不要返回不需要的行、列
8、用select top 100 / 10 Percent 来限制用户返回的行数或者SET ROWCOUNT来限制操作的行
9、在IN后面值的列表中,将出现最频繁的值放在最前面,出现得最少的放在最后面,减少判断的次数
10、一般在GROUP BY 个HAVING字句之前就能剔除多余的行,所以尽量不要用它们来做剔除行的工作。他们的执行顺序应该如下最优:
select的Where字句选择所有合适的行,Group By用来分组个统计行,Having字句用来剔除多余的分组。这样Group By 个Having的开销小,查询快.对于大的数据行进行分组和Having十分消耗资源。如果Group BY的目的不包括计算,只是分组,那么用Distinct更快
11、一次更新多条记录比分多次更新每次一条快,就是说批处理好.
I. 服务器数据库查询慢
SQL Server数据库查询速度慢的原因有很多,常见的有以下几种:
1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)
2、I/O吞吐量小,形成了瓶颈效应。
3、没有创建计算列导致查询不优化。
4、内存不足
5、网络速度慢
6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)
7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)
8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。
9、返回了不必要的行和列
10、查询语句不好,没有优化
●可以通过以下方法来优化查询 :
1、把数据、日志、索引放到不同的I/O设备上,增加读取速度,以前可以将Tempdb应放在RAID0上,SQL2000不在支持。数据量(尺寸)越大,提高I/O越重要。
2、纵向、横向分割表,减少表的尺寸(sp_spaceuse)
3、升级硬件
4、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。注意填充因子要适当(最好是使用默认值0)。索引应该尽量小,使用字节数小的列建索引好(参照索引的创建),不要对有限的几个值的字段建单一索引如性别字段。
5、提高网速。
6、扩大服务器的内存,Windows 2000和SQL server 2000能支持4-8G的内存。
配置虚拟内存:虚拟内存大小应基于计算机上并发运行的服务进行配置。运行 Microsoft SQL Server? 2000时,可考虑将虚拟内存大小设置为计算机中安装的物理内存的1.5倍。如果另外安装了全文检索功能,并打算运行Microsoft搜索服务以便执行全文索引和查询,可考虑:将虚拟内存大小配置为至少是计算机中安装的物理内存的3倍。将SQL Server max server memory服务器配置选项配置为物理内存的1.5倍(虚拟内存大小设置的一半)。
7、增加服务器CPU个数;但是必须 明白并行处理串行处理更需要资源例如内存。使用并行还是串行程是MsSQL自动评估选择的。单个任务分解成多个任务,就可以在处理器上运行。例如耽搁查询 的排序、连接、扫描和GROUP BY字句同时执行,SQL SERVER根据系统的负载情况决定最优的并行等级,复杂的需要消耗大量的CPU的查询最适合并行处理。但是更新操作UPDATE,INSERT, DELETE还不能并行处理。
8、如果是使用like进行查询的话,简单的使用index是不行的,但是全文索引,耗空间。 like ''a%'' 使用索引 like ''%a'' 不使用索引用 like ''%a%'' 查询时,查询耗时和字段值总长度成正比,所以不能用CHAR类型,而是VARCHAR。对于字段的值很长的建全文索引。
9、DB Server 和APPLication Server 分离;OLTP和OLAP分离
10、分布式分区视图可用于实现数据库服务器联合体。
联合体是一组分开管理的服务器,但它们相互协作分担系统的处理负荷。这种通过分区数据形成数据库服务器联合体的机制能够扩大一组服务器,以支持大型的多层 Web 站点的处理需要。有关更多信息,参见设计联合数据库服务器。(参照SQL帮助文件''分区视图'')
a、在实现分区视图之前,必须先水平分区表
b、 在创建成员表后,在每个成员服务器上定义一个分布式分区视图,并且每个视图具有相同的名称。这样,引用分布式分区视图名的查询可以在任何一个成员服务器上 运行。系统操作如同每个成员服务器上都有一个原始表的复本一样,但其实每个服务器上只有一个成员表和一个分布式分区视图。数据的位置对应用程序是透明的。
11、重建索引 DBCC REINDEX ,DBCC INDEXDEFRAG,收缩数据和日志 DBCC SHRINKDB,DBCC SHRINKFILE. 设置自动收缩日志.对于大的数据库不要设置数据库自动增长,它会降低服务器的性能。
在T-sql的写法上有很大的讲究,下面列出常见的要点:首先,DBMS处理查询计划的过程是这样的:
1、 查询语句的词法、语法检查
2、 将语句提交给DBMS的查询优化器
3、 优化器做代数优化和存取路径的优化
4、 由预编译模块生成查询规划
5、 然后在合适的时间提交给系统处理执行
6、 最后将执行结果返回给用户。
其次,看一下SQL SERVER的数据存放的结构:一个页面的大小为8K(8060)字节,8个页面为一个盘区,按照B树存放。
请参考