当前位置:首页 > 日记 > 正文

101MySQL优化技巧和技巧

101MySQL优化技巧和技巧
MySQL服务器硬件和操作系统调整:

1,我们有足够的物理内存来加载整个InnoDB文件到内存。在内存中访问文件比在硬盘中访问要快。
2。不惜任何代价避免使用交换交换分区——它在切换时从硬盘读取,而且速度非常慢。
三.使用电池供电的RAM(注:RAM或随机存储器)。
4。采用先进的RAID(注:廉价磁盘冗余阵列,是磁盘阵列)-优选RAID10或更高。
5、避免RAID5(注:一种存储解决方案,以存储性能、数据安全和存储成本帐户)以确保数据库的完整性验证的代价。
6。将操作系统与数据分区分开,不仅在逻辑上,而且在物理上——操作系统的读写将影响数据库的性能。
7、将MySQL临时空间和复制日志和数据放在不同的分区中。当数据库从磁盘读写时,会影响数据库的性能。
8。更多磁盘空间等于更快的速度。
9。更好更快的磁盘。
10。使用SAS(注:串行连接的SCSI,即串行连接SCSI)而不是SATA(注:SATA,即串行硬盘)。
11。较小的硬盘比大型硬盘更快,尤其是在RAID配置的情况下。
12。使用电池支持的高速缓存RAID控制器。
13。避免使用软件磁盘阵列。
14。考虑使用固态IO卡(而不是磁盘驱动器)进行数据分区——这些卡可以支持几乎所有数据的2GB/s写操作。
15。在Linux环境swappiness值0没有理由在数据库服务器上的文件缓存,这是一个服务器或台式机的优势。
16。如果可以的话,使用noatime和nodirtime挂载文件系统没有理由更新时间修改数据库文件。
17、使用XFS文件系统,文件系统,速度更快,比ext3,有许多日志选项,和ext3已经被证明与MySQL有双缓冲的问题。
18。调整为最高性能标准的XFS文件系统日志和缓存变量。
19,在Linux系统中,空或截止IO调度器使用时机。有空和期限相比调度器,CFQ调度和预期时间很慢。
20。使用64位操作系统——对于MySQL,将有更大的内存支持和使用。
21。删除服务器上的资源占用少的未使用的安装包和守护进程。
22。把主机MySQL和MySQL主机放在一个主机文件中-没有DNS查找。
23。不要强制杀死MySQL进程,否则会损坏数据库和正在运行备份的程序。
24。服务器对MySQL后台进程和其他服务的贡献可以缩短数据库占用CPU的时间。

MySQL的配置:

25。写作时,使用innodb_flush_method = o_direct避免双缓冲。
26。避免使用o_direct和ext3文件系统会将所有你想写的。
27。分配足够的innodb_buffer_pool_size加载整个InnoDB文件到内存少从磁盘中读取。
28、不设置innodb_log_file_size参数太大,这样你可以有更多的磁盘空间,速度更快,有更多的磁盘日志。通常,丢失更多的日志是好的。数据库崩溃后,可以减少恢复数据库的时间。
29。不要把innodb_thread_concurrency和thread_concurrency参数-这2个值是不相容的。
30。将少量的max_connections参数太多连接会耗尽内存和锁的mysql服务。
31。保持在一个相对高一些的相对高一些的thread_cache,约16 -慢防止打开连接。
32。使用跳过名称解析参数-删除DNS查找。
33。如果您的查询重复且数据不经常更改,则可以使用查询缓存。但是如果您的数据经常发生变化,使用查询缓存会让您失望。
34。增加temp_table_size值防止写入磁盘
35。增加max_heap_table_size值防止写入磁盘
36。不设置sort_buffer_size值太高,否则你的记忆将很快耗尽。
37、根据key_read_requests和key_reads价值决定的key_buffer大小。总的来说,key_read_requests应高于key_reads价值,否则你不能使用key_buffer有效。
38、设置innodb_flush_log_at_trx_commit 0会提高性能,但如果你想保持默认值(1),那么你就要确保数据的完整性,同时你也要确保复制不会落后。
39。你必须有一个测试环境来测试你的配置,你可以经常重启而不影响正常的生产。

MySQL模式优化:

40。保持数据库整理。
41。旧数据归档-删除冗余行或搜索查询。
42。将数据添加到索引中。
43。不要过度使用索引,比较和查询。
44。压缩文本和数据类型-节省空间和减少磁盘读取次数。
45。UTF 8和UTF16低于latin1的执行效率。
46。以温和的方式使用人字拖。
47。冗余数据保持在最低限度-不重复不必要的数据。
48。使用链接表,而不是扩展行。
49。注意数据类型,在实际数据中尽可能地使用最小的数据类型。
50。如果其他数据经常被用于查询,而非文本/文本数据不是,那么它就可以从其他数据中分离点/文本数据。
51。检查并定期优化表格。
52。经常改写InnoDB表优化。
53。有时,当添加列时,索引会被删除,然后再添加到索引中,这样速度会更快。
54。不同的存储引擎用于不同的需求。
55。使用存档的存储引擎日志表或审计表-这是更有效地编写。
56、会话数据存储在缓存(memcache)而不是MySQL。缓存允许自动和自动填充值,并防止创建难以读取和写入MySQL的时空数据。
57、使用varchar代替焦炭,节省空间,节省可变长度的字符串,因为固定长度的CHAR和VARCHAR长度不固定(UTF8不受此影响)。
58。逐步改变格局-一个小的变化,可以产生巨大的影响。
59。测试开发环境中的所有模式并反映生产的变化。
60。不要随意更改配置文件中的值,这会造成灾难性的影响。
61。有时,也少了很多配置MySQL。
62。有疑问时使用普通的MySQL配置文件。

查询优化:

63。使用慢速查询日志查找慢查询。
64。使用执行计划来确定查询是否正常运行。
65。总是测试你的查询,看看它们是否处于最佳状态,性能会随着时间而改变。
66。避免在整个表上使用计数(*),这可能会锁定整个表。
67。使查询保持一致,这样后续的类似查询就可以使用查询缓存。
68。在适当的情况下使用组而不是显式。
69。在WHERE、BY和BY子句中使用索引列。
70。保持索引简单,在多个索引中不包含相同的列。
71。有时MySQL使用错误的索引,并且使用索引来处理这种情况。
72。检查使用sql_mode =严格的问题。
73。对于记录数小于5的索引字段,在联合使用限制不是A或。
74。为了避免在重复密钥上使用插入或在预更新选择中忽略插入,不要使用更新来实现它。
75。不要使用max,使用索引字段和BY子句。
76。避免使用兰德()命令。
77。在某些情况下,限制m、n实际上可以减慢查询速度,并在适当的时候使用它。
78。使用联盟而不是在WHERE子句中的子查询。
79。对于更新(更新),使用共享模式(共享模式)以防止独占锁。
80。在MySQL的重启中,记得要温暖你的数据库,以确保你的数据在内存和查询中是快速的。
81。使用下拉表,创建表删除来删除表中的所有数据。
82。最小化的数据是查询您需要的数据,并花费大量的时间使用*。
83。考虑持久连接,而不是多个连接来减少开销。
84。基准查询,包括使用服务器上的负载,有时甚至是简单的查询也会影响其他查询。
85。当载荷添加到您的服务器,使用SHOW PROCESSLIST查看缓慢和有问题的查询。
86。在开发环境中生成的镜像数据中测试所有可疑查询。

MySQL备份过程:

87。从两级复制服务器备份。
88。在备份期间停止复制,以避免数据依赖和外键约束不一致。
89。完全停止MySQL和数据库文件的备份。
90。如果使用MySQL转储进行备份,请同时备份二进制日志文件,确保副本不会被中断。
91。不信任LVM快照--这很可能产生不一致的数据,将在未来给你带来的麻烦。
92。为了更容易地执行单表恢复,如果表中的数据与其他表隔离,则将数据导出到表中。
93。使用mysqldump时,请选择。
94。备份前检查和优化表。
95。为了使导入更快,外键约束在导入时暂时禁用。
96。为了更快导入,唯一性检测在导入时暂时禁用。
97。在每次备份之后计算数据库、表和索引的大小,以便监视数据大小的增长。
98。复制实例的错误和延迟由自动调度脚本监视。
99。定期进行备份。
100。定期测试备份。

最后的101。执行MySQL监视

相关文章

IE浏览器禁用挂起迅雷下载工具(图)的

IE浏览器禁用挂起迅雷下载工具(图)的

下载工具,迅雷,浏览器,挂起,方式,有时,我们不想使用迅雷下载,但这是默认的下载工具。每次下载数据,它都会自动启动。如果它只是暂时没有迅雷下载,它可以被暂停。具体操作方法如下: 方法:在迅雷工具打开IE浏览器,点击暂停;管理工具->添加打开窗户,在…

要多久启动Windows7系统真的只有15

要多久启动Windows7系统真的只有15

启动,系统,要多久,电脑软件,注释:Windows 7的开始时间只有15秒,这是一个相当短的时间。不可否认,启动系统所需的时间不同于不同的硬件配置,感兴趣的朋友可以理解这篇文章。 在Windows 7官方博客中,微软暗示下一代操作系统Windows 7只启动了15秒…

PHPnumber_format()函数格式化代码的

PHPnumber_format()函数格式化代码的

函数,数量,格式化,代码,电脑软件,定义和用法 的number_format()函数的格式的数据通过一千位的数据包。 语法 number_format(数,小数,小数,分离器) 参数描述 数字是必需的。要格式化的数字。如果没有其他参数被设置,数字被格式化为没有小数点和逗…

标题的更改命令提示符窗口win7下默

标题的更改命令提示符窗口win7下默

系统,命令提示符,路径,默认,文件名,点评:在win7的系统,通常是命令提示符的默认的标题是系统路径+文件名。下面是一个如何更改命令提示符窗口标题的列表。下面是一个很好的教程。有兴趣的朋友可以参考一下。 在win7系统下,命令提示符的默认的标…

不公:人神游戏教学甚至不能动(解)

不公:人神游戏教学甚至不能动(解)

不公,电脑软件,问题: Recently, playing ldquo; injustice: the man God ; in the second game, teaching closed Pactrometer will let me kick Superman, now even then.But after the kick, Superman directly flew out, unable to reac…

Linux下的视频音频提取方法

Linux下的视频音频提取方法

方法,音频,视频,电脑软件,Linux,点评:Linux可以使用MEncoder提取音频视频。 方法如下: 1、先安装MEncoder。Ubuntu软件仓库,是MEncoder的,可以直接输入以下命令安装 sudo apt-get install MEncoder 2。命令行输入 MEncoder - OAC mp3lame -…

PHPfile_put_contents()函数(用fopen,f

PHPfile_put_contents()函数(用fopen,f

集成,函数,电脑软件,PHPfile_put_contents,fopen,指挥:file_put_contents(); 命令解析:file_put_contents(PHP 5) file_put_contents --写一个字符串到文件 解释uff1a 国际file_put_contents(文件名字符串,字符串数据的{ int标志{,} }资源背景) 调用f…

nilaunch是nilaunch.exe-使用

nilaunch是nilaunch.exe-使用

电脑软件,nilaunch,exe,点评:nilaunch.exe是净它发射网络发布软件相关程序 进程文件:nilaunch或nilaunch.exe 过程名称:网络IT发射器 过程类别:安全风险的过程 英文描述: Nilaunch.exe是净它启动应用程序的一部分,网络出版 中文参考: Nilaunch.e…

系统介绍什么是BSDBSD

系统介绍什么是BSDBSD

系统,电脑软件,BSDBSD,点评:BSD(伯克利软件分发、伯克利软件套件)是一个Unix衍生系统。它是由加州大学伯克利分校于1977至1995年间开发发行的。 历史上,曾被认为是一个BSD UNIX mdash;mdash;BSD Unix在80年代,推导出了很多变形的Unix授权软件。比…

MySQL中触发器的简单介绍与介绍

MySQL中触发器的简单介绍与介绍

触发器,简单,电脑软件,MySQL,创建触发器。创建触发器语法如下: 创建触发器trigger_name trigger_time trigger_event 在每一行的trigger_stmt tbl_name 的trigger_name标识的触发器的名称,和用户指定它本身; trigger_time识别触发时间,取代…

ubuntu10.04根帐户启用方法

ubuntu10.04根帐户启用方法

启用,方法,帐户,电脑软件,点评:原来很简单,在系统设置中用户和组中的帐号类型到root可以,当然,你也可以把你的名字放在root,杀了他们和你分享。 很长一段时间在网上,都失败了,后来进入菜鸟突然看到光,原来分享的经验很简单,在系统设置中用户和组中…

什么win7需要之前与BitLocker知道

什么win7需要之前与BitLocker知道

加密文件,电脑软件,BitLocker,点评:在win7的系统,如果你想加密的文件,你可以考虑BitLocker软件,但仍有一些细节需要之前提到的使用。在使用它们之前你需要知道的东西可能对你有帮助。 在XP系统中,如果我们要加密文件,我们通常使用第三方软件。在w…