美文网首页
服务器设置

服务器设置

作者: wwwxi | 来源:发表于2017-09-27 18:15 被阅读0次

1.InnoDB缓冲池

1)解释 

InnoDB缓冲池缓存索引、行的数据、自适应哈希索引、插入缓冲、锁、以及其他内部数据结构。

依赖内存,要求有足够的内存。

2)监控InnoDb缓冲池的内存利用情况  

通过show 命令的得到的变量或者Innotop这样的工具监控InnoDB缓冲池的内存利用情况。  

3)应对很大缓冲池的方法  

预热和关闭会花费很长的时间。  
利用Percona Server的快速预热功能,来重新载入缓冲池的页,可以让预热时间减少到几分钟。

2.mysql并发配置

1)InnoDB并发配置  
    使用innodb_thread_concurrency变量限制并发,他会限制一次性可以有多少线程进入内核,0表示不限制。  
    这个变量的参考值:  并发值=CPU * 磁盘数量 * 2  
2)myisam并发配置  
    msisam如何删除和插入行  
        删除操作不会重新整理整个表,他们只是把行标记为删除,在表中留下“空洞”。myisam倾向于在可能的时候填满这些空洞,在插入行时重新利用这些空间。如果没有空洞了,它就把新行插入表的末尾。  
    配置concurrent_insert 这个变量,打开myisam的并发插入。  
        0  myisam不允许并发插入,所有插入都会对表加互斥锁。  
        1  这是默认值。只要表中没有空洞,myisam就允许并发插入。  
        2  在mysql5.0以及更新版本有效。强制并发插入到表的末尾,即使表中有空洞。如果没有现成从表中读取数据,mysql将把新航放在空洞里,使用这个设置通常会使表更加碎片化。

3.优化blob和text的场景

服务器不能在内存临时表中存储blob值,如果一个查询设计blob值,有需要一个临时表--不过它多小--它都会立即在磁盘上创建临时表。这样效率很低,尤其是对小儿快的查询。临时表可能是查询中最大的开销。  

解决方法:
1)通过substring()函数把值转换为varchar
2)让临时表更快一些
    最好方式是把他们放在基于内存的文件系统。

相关文章

网友评论

      本文标题:服务器设置

      本文链接:https://www.haomeiwen.com/subject/ndzuextx.html