关键词不能为空

当前您在: 主页 > 英语 >

InnoDB中文参考手册-性能调整技巧09

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-24 15:26
tags:

-

2021年2月24日发(作者:捐建)


9


性能调整技巧


(Performance tuning tips)



1.



如果



Unix


top





Windows


任务管理器


(Task Manager)



显示服务的



CPU


占用率小于



70%



(shows that the CPU usage percentage with


your workload is less than 70 %,


)你的系统瓶颈可能在磁盘 读写上。或许


你提交了大量的事务,或者是缓冲池


(buffe r pool)


太小了。将缓冲池设大点会


有所帮助,但一定要 注意不能大于物理内存的



80%




2.



在一个事务中包含几个修改。如 果事务对数据库进行了修改,那么在这个事


务提交时



InnoDB


必须刷新日志到磁盘上。因为硬盘的旋转速度通常至多为



167



/


秒,


那么只要磁盘不欺骗操作系统,


提交的事务数目限止也同样 为



167



/



·


用户。



3.



如果掉失最近的几个事务无所谓的话,可以在





文件中将参数



innodb_flu sh_log_at_trx_commit



设置为



0



InnoDB

< br>无论如何总是尝试一秒


刷新


(flush)


一次日志,尽管刷新并不能得到保证。



4.



将日志文件


(log files)


设 大一点,使日志文件的总和正好与缓冲池


(buffer


pool)


一样大。当



InnoDB


用光日志文件的空间时,它不得不在一个时间点 上


将缓冲池内修改过的内容写到磁盘上。


小的日志文件可能引起不必要的磁盘写


操作。但是大的日志文件的缺点就是在数据恢 复时将占用较长的时间。



5.



同样



log buffer


尽量设大点,比如说



8 MB




6.



如果要存储变长的字符串或字段可能会包含大量的



NULLs


,请使用



VARCHAR



型字段代替



CHAR



。一个



CHAR(n)



字段总是使用



n bytes


来存储数


据,即使这个字符串很短或是一个



NULL


值。较小的表更加适合缓冲池同时能


够减少磁盘



I/O




7.


(


适合从



3.23.41


以上版本


)


在某些版本的



Linux




Unixes


中,使用



Unix


fsync



或其它类似的方法将文件 刷新到磁盘是异常地慢的。


InnoDB


默认


的方法就是



fsync



。如果你对数据库系统的 磁盘写性能不能感到满意,你可以


尝试在





中将



innodb_flush_method



设置为



O_DSYNC



尽管



O_DSYNC




项在多数的系统上看起来比较慢。



8.



在向



InnoDB


导入数据时,请确认



MySQL


没有打开



autocommit=1



。否


则每个插入语句都要将



log


刷新到磁盘。在你的



SQL


导入文件的第一行加入



set autocommit=0;




并在最后一行加入



commit;




如果使用



mysqldump



选项



--opt


,你将会得到一个快速导入



InnoDB


表的转



(dump)


文件,甚至可以不再使用上面所提的



set autocommit=0; ...


commit;





9.



小心



insert


集全的大回滚


(roolback)


:在插入时



InnoDB


使用插入缓冲


来减少磁盘


< p>
I/O



但在相应的回滚中却没有使用这样的机制 。


一个



disk-bound


rollback


可能会花费相应插入时间的



30 < /p>


倍。如果发生一个失控的回滚,你可


以查看第


6.1


章节的技巧来停止它。



10.



同样也要小心一个大的



disk- bound


的操作。使用



DROP TABLE





TRUNCATE


(




MySQL-4.0


以上


)


来清空一个表,而不要使用



DELETE FROM


yourtable




11.



如果需要插入大量记录行可以使用多行


(multi- line)




INSERT



来减少客


户端与服务器端的通信开销:



INSERT INTO yourtable VALUES (1, 2), (5, 5);




这个技巧对插入任何表均有效,而不仅仅是



InnoDB






12.



如果在辅键上有



UNIQUE



约束,从



3.23.52




4.0.3

开始,可以通过在


一个导入会话中将唯一键检查


(uniq ueness check)


关闭来提高数据导入速度:



SET UNIQUE_CHECKS=0;




一个大的表导入这将减少大量的磁盘



I/O



因为这时


InnoDB


可能使用自身的


插入缓冲来分批地记录辅助索引。





13.



如果在表中有一个子



FOREIGN KEY



约束,从



3.23.52




4.0.3


开始,


可以通过在一个导 入会话中将外键检查


(foreign key check)


关闭来提高数据导


入速度:



SET FOREIGN_KEY_CHECKS=0;




对一个大的表导入这将减少大量的磁盘



I/O






9.1 InnoDB


监视器


(Monitors)



从版本



3.23.42


开始,


InnoDB


中就包含了



InnoDB Moni tors



它可以显示




InnoDB


的内部状态。从版本



3.23.52




4.0.3


开始,你可以使用一个


新的



SQL


命令



SHOW INNODB STATUS




来读取标准



InnoDB Monitor




SQL client


的输出信息。


这些信息对性能调


整有益。





另外一个使用



InnoDB Monitors


方法就是让它在服务程序



mysqld



的标准输


出上持续地写出信息。当开关打开时,


InnoDB Monitors


大约每



15


秒显示


一次数据


(


注意:

< p>
MySQL


的客户端并不会显示任何东西


)



一个简单地使用它的


方法就是以一个命令 行方式执行



mysqld



。否则输出将会定向到



MySQL


服务


错误日志


(error log file)




'yourhostname'.err


(




Windows


下为




)


,在



Windows


系统中必须在



MS-DOS


使用提示符下以



--console



选项运行



mysqld- max



来指令信息输出在命令提示符窗口上。



显示的信息包含下列信息:



?



?



?



?



?



?



每一个活动的事务


(active transaction)


保持的表和记录锁定



事务的锁等待



(lock waits of a transactions)



线程的信号量等待



(semaphore waits of threads)



文件



I/O


的等待请求



(pending file i/o requests)



缓冲池


(buffer pool)


的统计信息



InnoDB


主线程的



purge buffer




insert buffer


归并活动


(merge


activity)





通过下列的



SQL


命令,可以使标准的



InnoDB Monitor


记录到标准的



mysqld



的输出上:



CREATE TABLE innodb_monitor(a int) type = innodb;




通过它来停止:



DROP TABLE innodb_monitor;




CREATE TABLE



句法只不过是为了通过



MySQL SQL


语法分析而提供给



InnoDB


引擎命令的一种方式:那个被创建的表根本与



InnoDB Monitor



任 何关系。


如果你在监视器运行着的状态下关闭数据库,


并且你需 要再次启动监


视器,



那么你不得不在发出一个新的



CREATE TABLE



来启动监 视器之前先移除


(drop)


这个表。


-


-


-


-


-


-


-


-



本文更新与2021-02-24 15:26,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/670385.html

InnoDB中文参考手册-性能调整技巧09的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文