优化mysql服务器_MySQL服务器的优化方法_MySQL

本文介绍了如何调整系统参数以提升MySQL服务器性能。建议使用Solaris或Linux操作系统,并根据需求调整内存使用、启用特定选项如--skip-external-locking。此外,详细列举了默认的MySQL服务器参数,如back_log、binlog_cache_size、max_connections等,指导读者根据实际情况进行配置优化。
摘要由CSDN通过智能技术生成

58e8d81c4a0d115f2a9f9f245fa77d87.png

...

public function getLinkLength() {

$i = 0;

$current = $this->header;

while ( $current->next != null ) {

$i ++;

$current = $current->next;

}

return $i;

}

//添加节点数据

p...

bitsCN.com

1、调整系统因素及启动参数

我们从系统级别的因素开始说起,因为有些方面的因素必须尽早决定才能取得较大性能改进。其他情况下,只需要快速看一下本章节即可。不过,在这个级别看看能做什么以取得更高性能更合适。

使用默认的操作系统这很重要。想要最有效地使用多CPU机器,就使用Solaris(因为它的线程实现确实很好)或Linux(因为2.2的内核对SMP有良好的支持)。请注意,老版本的Linux内核默认会有2GB文件大小限制。如果使用这样的内核而文件又确实需要大于2GB,那么就必须对ext2文件系统打大文件支持(LFS)补丁。其他文件系统诸如 ReiserFS 和 XFS 则没有这个限制。

在MySQL投入生产之前,我们建议你在欲使用的平台上先做一下测试。

其他tips:

如果有足够的RAM(随机存储器),则应该去掉所有的交换设备。有些操作系统在一些情景中尽管有剩余内存也会使用交换设备。

使用MySQL选项 --skip-external-locking 来避免外部锁。从MySQL 4.0开始,这个选项默认是打开的。在这之前,只有编译支持

MIT-pthreads 才能默认打开,因为在所有平台上的MIT-pthreads 不能全部都支持 flock()。这在Linux上也是默认打开的,因为Linux的文件锁还不安全。注意,--skip-external-locking 选项在服务器运行时并不会影响其功能性。只要记住在运行

myisamchk 前要关闭服务器(或者锁定并且刷新相关数据表)。在一些操作系统上这个选项是强制的,因为外部锁在任何情况下都无法使用。不能使用 --skip-external-locking 选项的唯一情况是:在同一个数据上运行多个MySQL服务器(不是客户端),或者运行

myisamchk 检查(不是修复)数据表前没有先告诉服务器要刷新并且锁定该表。使用 --skip-external-locking 选项后依旧可以使用 LOCK TABLES 和 UNLOCK TABLES 语句。

2、调整服务器参数

可以使用以下 mysqld 命令(在MySQL 4.1以前,忽略 --verbose)来确定默认的缓冲大小:

shell> mysqld --verbose --help

这个命令产生了所有的 mysqld 选项以及可以配置的系统变量列表。结果中包括默认值,看起来像是如下:

back_log current value: 5

bdb_cache_size current value: 1048540

binlog_cache_size current value: 32768

connect_timeout current value: 5

delayed_insert_limit current value: 100

delayed_insert_timeout current value: 300

delayed_queue_size current value: 1000

flush_time current value: 0

interactive_timeout current value: 28800

join_buffer_size current value: 131072

key_buffer_size current value: 1048540

long_query_time current value: 10

lower_case_table_names current value: 0

max_allowed_packet current value: 1048576

max_binlog_cache_size current value: 4294967295

max_connect_errors current value: 10

max_connections current value: 100

max_delayed_threads current value: 20

max_heap_table_size current value: 16777216

max_join_size current value: 4294967295

max_sort_length current value: 1024

max_tmp_tables current value: 32

max_write_lock_count current value: 4294967295

myisam_sort_buffer_size current value: 8388608

net_buffer_length current value: 16384

net_read_timeout current value: 30

net_retry_count current value: 10

net_write_timeout current value: 60

read_buffer_size current value: 131072

read_rnd_buffer_size current value: 262144

slow_launch_time current value: 2

sort_buffer current value: 2097116

table_cache current value: 64

thread_concurrency current value: 10

thread_stack current value: 131072

tmp_table_size current value: 1048576

wait_timeout current value: 28800

bitsCN.com

...

public function getLinkLength() {

$i = 0;

$current = $this->header;

while ( $current->next != null )

...public function addnode($array){

foreach ($array as $key=> $value) {

$current = $this->root;

$parent = null;

$currentdepth = 1;

whil

php 中current() 函数是返回数组中的当前元素(单元),每个数组中都有一个内部的指针指向它“当前的”单元,初始指向插入到数组中的第一个单元,如果我们执行current一次,则内部指针会指向下一个单元,我们可以使用cu...

php 中current() 函数是返回数组中的当前元素(单元),每个数组中都有一个内部的指针指向它“当前的”单元,初始指向插入到数组中的第一个单元,如果我们执行current一次,则内部指针会指向下一个单元,我们可以使用current ...

...

this.append = function(element){

var node = new Node(element),

current; //操作所用指针

if (!head){

head = node;

}else {

curre

...d=function(element){  var node=new Node(element),    current;  if(head===null){    head=node;   }else{    current=node;    while(current.next){

...果中包括默认值,看起来像是如下:  back_log current value: 5   bdb_cache_size current value: 1048540   binlog_cache_size current value: 32768   connect_timeout curr

...结果中包括默认值,看起来像是如下:  back_log current value: 5   bdb_cache_size current value: 1048540   binlog_cache_size current value: 32768   connect_timeout cur

...return $this;

}

public function edit($id,$value){

$flag = false;

$current = $this->head;

while(@$current->id !=null){

if($current->id

... public function getLinkLength() { $i = 0; $current = $this->header; while ( $current->next != null ) { $i +

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值