当前位置:首页 > 网站建设 > 建站交流 > 正文内容

Linux Mariadb/MySQL的配置优化

热淘网6年前 (2015-09-28)建站交流946

1.关闭那么没有使用的InnoDB MEMORY等其他引擎

 2.数据库索引
 索引的缺点:极大地加速了查询,减少扫描和锁定的数据行数。
 索引的缺点:占用磁盘空间,减慢了数据更新速度,增加了磁盘IO。
 添加索引有如下原则:
 1.   选择唯一性索引。
 2.   为经常需要排序、分组和联合操作的字段建立索引。
 3.   为常作为查询条件的字段建立索引。
 4.   限制索引的数据,索引不是越多越好。
 5.   尽量使用数据量少的索引,对于大字段可以考虑前缀索引。
 6.   删除不再使用或者很少使用的索引。
 7.   结合核心SQL优先考虑覆盖索引。
 8.   忌用字符串做主键。
  
 反范式设计
 适当的使用冗余的反范式设计,以空间换时间有的时候会很高效。
 3.Mysql软件优化
 开启mysql复制,实现读写分离、负载均衡,将读的负载分摊到多个从服务器上,提高服务器的处理能力。
 使用推荐的GA版本,提升性能
 利用分区新功能进行大数据的数据拆分
 4.Mysql配置优化
 注意:全局参数一经设置,随服务器启动预占用资源。
 key_buffer_size参数
 mysql索引缓冲,如果是采用myisam的话要重点设置这个参数,根据(key_reads/key_read_requests)判断
 innodb_buffer_pool_size参数
 INNODB 数据、索引、日志缓冲最重要的引擎参数,根据(hit riatos和FILE I/O)判断
 wait_time_out参数
 线程连接的超时时间,尽量不要设置很大,推荐10s
 max_connections参数
 服务器允许的最大连接数,尽量不要设置太大,因为设置太大的话容易导致内存溢出,需要通过如下公式来确定:
SET @k_bytes = 1024;
 SET @m_bytes = @k_bytes * 1024;
 SET @g_bytes = @m_bytes * 1024;
 SELECT
       (
  @@key_buffer_size + @@query_cache_size + @@tmp_table_size+
       @@innodb_buffer_pool_size + @@innodb_additional_mem_pool_size+
       @@innodb_log_buffer_size+
       @@max_connections *
  
  ( @@read_buffer_size + @@read_rnd_buffer_size + @@sort_buffer_size+
          @@join_buffer_size + @@binlog_cache_size + @@thread_stack
         ) )
 / @g_bytes AS MAX_MEMORY_USED_GB;
  
 thread_concurrency参数
 线程并发利用数量,(cpu+disk)*2,根据(os中显示的请求队列和tickets)判断
 sort_buffer_size参数
 获得更快的--ORDER BY,GROUP BY,SELECT DISTINCT,UNION DISTINCT
 read_rnd_buffer_size参数
 当根据键进行分类操作时获得更快的--ORDER BY
 join_buffer_size参数
 join连接使用全表扫描连接的缓冲大小,根据select_full_join判断
 read_buffer_size参数
 全表扫描时为查询预留的缓冲大小,根据select_scan判断
 tmp_table_size参数
 临时内存表的设置,如果超过设置就会转化成磁盘表,根据参数(created_tmp_disk_tables)判断
 innodb_log_file_size参数(默认5M)
 记录INNODB引擎的redo log文件,设置较大的值意味着较长的恢复时间。
 innodb_flush_method参数(默认fdatasync)
 Linux系统可以使用O_DIRECT处理数据文件,避免OS级别的cache,O_DIRECT模式提高数据文件和日志文件的IO提交性能
 innodb_flush_log_at_trx_commit(默认1)
 1.   0表示每秒进行一次log写入cache,并flush log到磁盘。
 2.   1表示在每次事务提交后执行log写入cache,并flush log到磁盘。
 3.   2表示在每次事务提交后,执行log数据写入到cache,每秒执行一次flush log到磁盘。
 5.Mysql语句级优化
 1.   性能查的读语句,在innodb中统计行数,建议另外弄一张统计表,采用myisam,定期做统计.一般的对统计的数据不会要求太精准的情况下适用。
 2.   尽量不要在数据库中做运算。
 3.   避免负向查询和%前缀模糊查询。
 4.   不在索引列做运算或者使用函数。
 5.   不要在生产环境程序中使用select * from 的形式查询数据。只查询需要使用的列。
 6.   查询尽可能使用limit减少返回的行数,减少数据传输时间和带宽浪费。
 7.   where子句尽可能对查询列使用函数,因为对查询列使用函数用不到索引。
 8.   避免隐式类型转换,例如字符型一定要用’’,数字型一定不要使用’’。
 9.   所有的SQL关键词用大写,养成良好的习惯,避免SQL语句重复编译造成系统资源的浪费。
 10. 联表查询的时候,记得把小结果集放在前面,遵循小结果集驱动大结果集的原则。
 11. 开启慢查询,定期用explain优化慢查询中的SQL语句。


<p>扫描二维码推送至手机访问。</p><p>版权声明:本文由<strong>网站标题</strong>发布,如需转载请注明出处。</p>

本文链接:https://www.retao5.com/jianzhan/652.html

分享给朋友:

相关文章

轻松构建 Linux + Nginx + MySQL + PHP 环境

轻松构建 Linux + Nginx + MySQL + PHP 环境

快速在线安装、小巧且节省资源 当前支持 CentOS/Redhat 5.4+、6.x 基于发行版软件源的软件管理机制 轻松构建 Linux + Nginx + MySQL +...

Serv-U FTP Server V9.4.0.2 FTP服务器 特别版

Serv-U FTP Server V9.4.0.2 FTP服务器 特别版

Serv-U是一种被广泛运用的FTP服务器端[url=http://www.xiazaiba.com/]软件[/url],支持3x/9x/ME/NT/2K等全Windows系列。可以设定多个FTP服...

飞飞CMS 后台采集规则增加方法

飞飞CMS 后台采集规则增加方法

手动修改方法,如果嫌麻烦或者技术欠佳的朋友可以直接下载附件覆盖到网站根目录即可。testtest飞飞CMS网站根目录Publicsystemxml_show_list.html   ...

最大程度的减少网站搬家带来的降权

最大程度的减少网站搬家带来的降权

[b]一、网站更换空间需要注意的事项。[/b]   1.比较新老空间,新空间要比老空间更稳定快速。   2.更换空间前,请事先测试好,保证数据的完整性。   3.老空间数据保留3-5天为最佳,蜘蛛有爬...

 navicat for mysql(mysql数据库管理工具) v11.0.10中文破解版

navicat for mysql(mysql数据库管理工具) v11.0.10中文破解版

navicat for mysql是一套类似于phpMyAdmin、Mysql-Front这 样的超强的Mysql数据库管理工具,适用于MySQL数据库系统的图形化数据库管理、报告以及监控的等。本软...

让你的apache或iis支持ssi(即shtml)吧

让你的apache或iis支持ssi(即shtml)吧

[p=null, 2, left]什么是SSI?[/p][p=null, 2, left]SSI是英文Server Side Includes的缩写,翻译成中文就是服务器端包含的意思。从技术角度上说,...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。