仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 834|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL编程:五个影响mysql功能的关头设置

[复制链接]
冷月葬花魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:15:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
MySQL对硬件的较低要求是其最大的优势之一,不过需要注意的是:内存越多越好,因为所有的重要数据存储都在内存中完成。  以下的文章次要是对MySQL功能影响干系严密的五年夜设置参数的先容,我头几天在相干网站瞥见对MySQL功能影响干系严密的五年夜设置参数的材料,以为挺好,就拿出来供人人分享,看你能有所劳绩。
  (一)毗连
  毗连一般来自Web服务器,上面列出了一些与毗连有关的参数,和该怎样设置它们。
  1、max_connections
  这是Web服务器同意的最年夜毗连数,记着每一个毗连都要利用会话内存(关于会话内存,文章前面有触及)。
  2、max_packet_allowed
  最年夜数据包巨细,一般即是你必要在一个年夜块中前往的最年夜数据集的巨细,假如你在利用远程mysqldump,那它的值必要更年夜。
  3、aborted_connects
  反省体系形态的计数器,断定其没有增加,假如数目增加申明客户端毗连时碰到了毛病。
  4、thread_cache_size
  进站毗连会在MySQL中创立一个新的线程,由于MySQL中翻开和封闭毗连都很便宜,速率也快,它就没有象别的数据库,如Oracle那末多延续毗连了,但线程事后创立其实不会勤俭工夫,这就是为何要MySQL线程缓存的缘故原由了。
  假如在增加请亲切注重创立的线程,让你的线程缓存更年夜,关于2550或100的thread_cache_size,内存占用也未几。
  (二)查询缓存
  (三)一时表
  内存速率是相称快的,因而我们但愿一切的排序操纵都在内存中举行,我们能够经由过程调剂查询让了局集更小以完成内存排序,或将变量设置得更年夜。
  tmp_table_size
  max_heap_table_size
  不管什么时候在MySQL中创立一时表,它城市利用这两个变量的最小值作为临界值,除在磁盘上构建一时表外,还会创立很多会话,这些会话会抢占据限定的资本,因而最好是调剂查询而不是将这些参数设置得更高,同时,必要注重的是有BLOB或TEXT字段范例的表将间接写进磁盘。深切浅出MySQL双向复制手艺
  (四)会话内存
  MySQL中每一个会话都有其本人的内存,这个内存就是分派给SQL查询的内存,因而你想让它变得尽量年夜以满意必要。但你不能不均衡统一工夫数据库内分歧性会话的数目。这里显得有点玄色艺术的是MySQL是按需分派缓存的,因而,你不克不及只增加它们并乘以会话的数目,如许预算上去比MySQL典范的利用要年夜很多。
  最好做法是启动MySQL,毗连一切会话,然后持续存眷顶级会话的VIRT列,mysqld行的数量一般坚持绝对不乱,这就是实践的内存总用量,减往一切的静态MySQL内存地区,就失掉了实践的一切会话内存,然后除以会话的数目就失掉均匀值。
  1、read_buffer_size
  缓存一连扫描的块,这个缓存是跨存储引擎的,不但是MyISAM表。
  2、sort_buffer_size
  实行排序缓存区的巨细,最好将其设置为1M-2M,然后在会话中设置,为一个特定的查询设置更高的值。
  3、join_buffer_size
  实行团结查询分派的缓存区巨细,将其设置为1M-2M巨细,然后在每一个会话中再独自按需设置。
  4、read_rnd_buffer_size
  用于排序和orderby操纵,最好将其设置为1M,然后在会话中能够将其作为一个会话变量设置为更年夜的值。
  (五)慢速查询日记
  慢速查询日记是MySQL很有效的一个特征。
  1、log_slow_queries
  MySQL参数中log_slow_queries参数在my.cnf文件中设置它,将其设置为on,默许情形下,MySQL会将文件放到数据目次,文件以“主机名-slow.log”的情势定名,但你在设置这个选项的时分也能够为其指定一个名字。
  2、long_query_time
  默许值是10秒,你能够静态设置它,值从1到将其设置为on,假如数据库启动了,默许情形下,日记将封闭。停止5.1.21和安装了Google补钉的版本,这个选项能够以微秒设置,这是一个了不得的功效,由于一旦你打消了一切查询工夫凌驾1秒的查询,申明调剂十分乐成,如许能够匡助你在成绩变年夜之前打消成绩SQL。
  3、log_queries_not_using_indexes
  开启这个选项是个不错的主张,它实在地纪录了前往一切行的查询。
  小结
  我们先容了MySQL参数的五年夜类设置,平常我们一样平常都很少碰它们,在举行MySQL功能调优和妨碍诊断时这些参数仍是十分有效的。
  MySQL中的缓存查询包含两个剖析查询企图,和前往的数据集,假如基本表数据或布局有变更,将会使查询缓存中的项目有效。
  1、query_cache_min_res_unit
  MySQL参数中query_cache_min_res_unit查询缓存中的块是以这个巨细举行分派的,利用上面的公式盘算查询缓存的均匀巨细,依据盘算了局设置这个变量,MySQL就会更无效地利用查询缓存,缓存更多的查询,削减内存的华侈。
  2、query_cache_size
  这个参数设置查询缓存的总巨细。
  3、query_cache_limit
  这个参数告知MySQL丢失落年夜于这个巨细的查询,一样平常年夜型查询仍是对照少见的,如运转一个批处置实行一个年夜型报表的统计,因而那些年夜型了局集不该该填满查询缓存。
  qcachehitratio=qcache_hits/(qcache_hits+com_select)
  利用
  SQL>showstatuslike‘qcache%’;SQL>showstatuslike‘com_%’;
  找到这些变量。
  averagequerysize=(query_cache_size–qcache_free_memory)/qcache_queries_in_cache
  利用
  SQL>showvariableslike‘query%’;qcache_*statusvariablesyoucangetwith:SQL>showstatuslike‘qcache%’;
  猎取query_cache_size的值。
  以上的相干内容就是对对MySQL功能影响干系亲切的五年夜类主要设置参数的先容,看你能有所劳绩。
<Pstyle="TEXT-INDENT:2em">
首先我们要知道,或许有一项技术存在很多理由让我们可以选择使用MySQL学习教程,但是让我们不使用它往往只要有一个理由就足够了。
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-19 06:02:32 | 只看该作者
再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。
飘灵儿 该用户已被删除
板凳
发表于 2015-1-27 05:36:32 | 只看该作者
从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。
分手快乐 该用户已被删除
地板
发表于 2015-2-5 03:29:45 | 只看该作者
Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。
5#
发表于 2015-2-11 03:29:43 | 只看该作者
这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。
冷月葬花魂 该用户已被删除
6#
 楼主| 发表于 2015-3-1 20:39:22 | 只看该作者
从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。
深爱那片海 该用户已被删除
7#
发表于 2015-3-10 23:49:22 | 只看该作者
至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。
只想知道 该用户已被删除
8#
发表于 2015-3-17 16:11:26 | 只看该作者
很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。
小女巫 该用户已被删除
9#
发表于 2015-3-24 12:43:09 | 只看该作者
索引视图2k就有。但是2005对其效率作了一些改进但是schema.viewname的作用域真是太限制了它的应用面。还有一大堆的环境参数和种种限制都让人对它有点却步。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-6 07:19

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表