当前位置: 首页 > news >正文

北京企业网站建设费用百度认证中心

北京企业网站建设费用,百度认证中心,一学一做教育视频网站有哪些内容,网站病毒怎么做hello,大家好,我是小鱼 本文主要通过针对 MySQL Server(mysqld)相关实现机制的分析,得到一些相应的优化建议。主要 涉及 MySQL 的安装以及相关参数设置的优化,但不包括 mysqld 之外的比如存储引擎相关的参…

hello,大家好,我是小鱼

本文主要通过针对 MySQL Server(mysqld)相关实现机制的分析,得到一些相应的优化建议。主要 涉及 MySQL 的安装以及相关参数设置的优化,但不包括 mysqld 之外的比如存储引擎相关的参数优化哈。

选择合适的发行版本

文章目录

  • 1.二进制发行版
  • 2.源码安装

1.二进制发行版

包括 RPM 等包装好的特定二进制版本

​ 由于 MySQL 开源的特性,不仅仅 MySQL AB 提供了多个平台上面的多种二进制发行版本可以供大家选 择,还有不少第三方公司(或者个人)也给我们提供了不少选择。

使用 MySQL AB 提供的二进制发行版本我们可以得到哪些好处?

  • 通过非常简单的安装方式快速完成 MySQL 的部署;

  • 安装版本是经过比较完善的功能和性能测试的编译版本;

  • 所使用的编译参数更具通用性的,且比较稳定;

  • 如果购买了 MySQL 的服务,将能最大程度的得到 MySQL 的技术支持

​ 第三方提供的 MySQL 发行版本大多是在 MySQL AB 官方提供的源代码方面做了或多或少的针对性改 动,然后再编译而成。这些改动有些是在某些功能上面的改进,也有些是在某写操作的性能方面的改 进。还有些由各OS 厂商所提供的发行版本,则可能是在有些代码方面针对自己的OS 做了一些相应的底层 调用的调整,以使 MySQL 与自己的 OS 能够更完美的结合。当然,也有一些第三方发行版本并没有动过 MySQL 一行代码,仅仅只是在编译参数方面做了一些相关的调整,而让MySQL 在某些特定场景下表现更优秀。

​ 这样一说,听起来好像第三方发行的 MySQL 二进制版本要比 MySQL AB 官方提供的二进制发行版有更 大的吸引力,那么我们是否就应该选用第三方提供的二进制发行版呢?先别着急,我们还需要进一步分 析一下第三方发行版本可能存在哪些问题。

​ 首先,由于第三方发行版本对 MySQL 所做的改动,很多都是为了应对发行者自己所处的特定场景而 做出来的。所以,第三方发行版本并不一定适合其他所有使用者所处的环境。

​ 其次,由于第三方发行版本的发行者并一定都是一个足够让人信任的公司(或者个人),在其生成 自己的发行版本之前,是否有做过足够全面的功能和性能测试我们不得而知,在我们使用的时候是否会 出现 MySQL AB 官方的发行版本中并不存在的 bug?

​ 最后,如果我们购买了 MySQL 的相关服务,而又使用了第三方的发行版本,当我们的系统出现问题 的时候,恐怕 MySQL 的支持工程师的支持工作会大打折扣,甚至可能会拒绝提供支持。

​ 如果大家可以完全抛开以上这些可能存在隐患的顾虑,完全可以尝试使用非 MySQL AB 官方提供的二 进制版本,而选用可能具有更多特性或者更高性能的发行版本了。

​ 之前我也对网络上各种第三方二进制分发版本做过一些测试和比较,也发现了一些比较不错的版 本,如 Percona 在整合了一些比较优秀的 Patch 之后的发行版本整体质量都还不错,使用者也比较多。 当然,Percona 不仅仅分发二进制版本,同时也分发整合了一些优秀 Patch 的源码包。对于希望使 Percona 提供的一些 Patch 的朋友,同时又希望能够自行编译以进一步优化和定制 MySQL 的朋友,也可以 下载 Percona 提供的源码包。

​ 对于二进制分发版本的安装,对于安装本身来说,我们基本上没有太多可以优化的地方,唯一可以 做的就是当我们决定了选择第三方分发版本之后,可以根据自身环境和应用特点来选择适合我们环境的优化发行版本来安装。

2.源码安装

与二进制发行版本相比,如果我们选择了通过源代码进行安装,那么在安装过程中我们能够对 MySQL 所做的调整将会更多更灵活一些。因为通过源代码编译我们可以:

  • 针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码;

  • 根据不同的软件平台环境调整相关的编译参数;

  • 针对我们特定应用场景选择需要什么组件不需要什么组件;

  • 根据我们的所需要存储的数据内容选择只安装我们需要的字符集;

  • 同一台主机上面可以安装多个 MySQL;

  • 等等其他一些可以根据特定应用场景所作的各种调整。

在源码安装给我们带来更大灵活性的同时,同样也给我们带来了可能引入的隐患

  • 对编译参数的不够了解造成编译参数使用不当可能使编译出来的二进制代码不够稳定;

  • 对自己的应用环境把握失误而使用的优化参数可能反而使系统性能更差;

  • 还有一个并不能称之为隐患的小问题就是源码编译安装将使安装部署过程更为复杂,所花费的 时间更长;

通过源码安装的最大特点就是可以让我们自行调整编译参数,最大程度的定制安装结果。下面我将 自己在通过源码编译安装中的一些优化心得做一个简单的介绍,希望能够对大家有所帮助。

在通过源码安装的时候,最关键的一步就是配置编译参数,也就是执行通过 configure 命令所设定 的各种编译选项。我们可以在 MySQL 源码所在的文件夹下面通过执行执行./configure —help得到 可以设置的所有编译参数选项,如下:

`configure' configures this package to adapt to many kinds of systems.
Usage: ./configure [OPTION]... [VAR=VALUE]...
... ...
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
... ...
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
... ...
Program names:
--program-prefix=PREFIX prepend PREFIX to installed program names
System types:
--build=BUILD configure for building on BUILD [guessed]
... ...
Optional Features:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
... ...
Optional Packages:
--with-charset=CHARSET
... ...
--without-innodb Do not include the InnoDB table handler
... ...
Some influential environment variables:
CC C compiler command
... ...
CCASFLAGS assembler compiler flags (defaults to CFLAGS)
... ...

上面的输出内容中很多都已经省略了,大家完全可以通过自行测试得到更为丰富的内容输出。下面 针对几个比较重要的编译参数做一个简单的介绍:

参数说明
—prefix设定安装路径,默认为“/usr/local”
—datadir设定 MySQL 数据文件存放路径
—with-charset设定系统的默认字符集
—with-collation系统默认的校验规则
—with-extra-charsets出了默认字符集之外需要编译安装的字符集
—with-unix-socket-path设定 socket 文件地址
—with-tcp-port指定特定监听端口,默认为 3306
—with-mysqld-user指定运行 mysqld 的 os 用户,默认为 mysql
—without-query-cache禁用 Query Cache 功能
—without-innodb禁用 Innodb 存储引擎
--with-partition在 5.1 版本中开启 partition 支持特性
--enable-thread-safe-client以线程方式编译客户端
—with-pthread强制使用 pthread 线程库编译
—with-named-thread-libs指定使用某个特定的线程库编译
—without-debug使用非 debug 模式
—with-mysqld-ldflagsmysqld 的额外 link 参数
—with-client-ldflagsclient 的额外 link 参数

以上这些参数是在源码安装中比较常用的一些编译参数,其中前面几个编译参数主要是为了方便我 们在安装的时候可以定制自己的系统,让系统更适合我们自己应用环境的相关规范,做到环境统一,并 按照实际需求生成相应的二进制代码。而后面的一些参数主要是用来优化编译结果的。

我想大家应该都能理解一般来说,一个系统功能越复杂,其性能一般都会越差。所以,在我们安装 编译 MySQL 的时候应该尽量只选用我们需要的组件,仅安装我们需要的存储引擎,仅编译我们需要的字 符集,让我们的系统能够尽可能的简单,因为这样的 MySQL 也会给我们带来尽可能高的性能。

此外,对于一些特定的软件环境上,可能会有多种线程库的选择的,如果你对各个线程库较为了 解,完全可以通过编译参数设定让MySQL使用最合适的线程库,让MySQL 在我们特定的环境中发挥他最优 化的一面。

源码包的编译参数中默认会以 Debug 模式生成二进制代码,而 Debug 模式给 MySQL 带来的性能损失是 比较大的,所以当我们编译准备安装的产品代码的时候,一定不要忘记使用—without-debug参数禁 用 Debug 模式。

—with-mysqld-ldflags—with-client-ldflags两个编译参数如果设置为-all-static的话,可以告诉编译器以静态方式编译来使编译结果代码得到最高的性能。使用静态编译和动 态方式编译的代码相比,性能差距可能会达到 5%到 10%之多。

就我个人来说最常使用的编译配置参数如下,各位可以以参照自行增删相关内容:

./configure --prefix=/usr/local/mysql \
--without-debug \
--without-bench \
--enable-thread-safe-client \
--enable-assembler \
--enable-profiling \
--with-mysqld-ldflags=-all-static \
--with-client-ldflags=-all-static \
--with-charset=latin1 \
--with-extra-charset=utf8,gbk \
--with-innodb \
--with-csv-storage-engine \
--with-federated-storage-engine \
--with-mysqld-user=mysql \
--without-embedded-server \
--with-server-suffix=-community \
--with-unix-socket-path=/usr/local/mysql/sock/mysql.sock
http://www.shuangfujiaoyu.com/news/33178.html

相关文章:

  • 昆山做企业网站网站优化入门免费教程
  • 郑州网站制作多少钱做外贸怎么推广
  • 安吉做企业网站网址域名
  • 做网站和网页手机黄页怎么找
  • 南通e站网站建设seo优化销售话术
  • 国外网站推广方法百度排行榜风云榜小说
  • 哪些网站可以用来做百科参考如何在百度上发表文章
  • 服务平台的宗旨seo研究中心倒闭
  • 全国企业信息管理系统seo站外推广有哪些
  • 一个新的网站怎么做宣传成都网络营销公司哪家好
  • 宁波企业制作网站网站免费推广平台
  • iis部署网站 红叉灰色词排名代做
  • 企业网站优化服务主要围绕哪些要素网站开发是做什么的
  • 三明网站建设百度关键词价格查询软件
  • 专业网站建设知识百度账号申诉
  • 烟台网站排名优化价格百度一下了你就知道官网
  • 做网站手机版和电脑版怎么区分南昌百度网站快速排名
  • 网络服务商在哪黑帽seo技巧
  • wordpress模板标签西安分类信息seo公司
  • 网站站长seo推广上海优化公司排行榜
  • 如何在网站做投票公司网站制作费用
  • 工业园企业建设网站公司宝塔没有域名直接做网站怎么弄
  • 网络营销案例小故事分享seo优化人员
  • 做论坛网站需要备案贵州二级站seo整站优化排名
  • 打开建设银行官方网站首页常州谷歌推广
  • 如何做网站地图txt我在百度下的订单如何查询
  • 国外访问国内网站速度网站排名优化教程
  • 美国有网站建设公司吗网络营销策划师
  • 哪些是+joomla做的网站营销知识和技巧
  • 免费个人网站2018网站广告投放价格表