好硬件是数据库高效的前提,没有好硬件其他优化都是白费

高性能的CPU

主频高SQL处理的更快

3级cache大CPU计算速率更快

多线程,同时并发处理SQL

关闭NUMA并设置为最大性能模式,充分利用硬件性能

MySQL 5.6.27后,增加innodb_numa_interleave选项(缓冲池)

更好的内存

主频高,内存读写速率更高,更高吞吐,更低时延
内存大,更多数据在内存中,减少直接磁盘读写,提高TPS

用更好的磁盘

通常来说,磁盘I/O是最大的瓶颈
如果是机械盘,一定要配阵列卡,以及阵列卡的CACHE & BBU
并且使用(FORCE)WB策略(RAID卡写策略
最好是选用SSD或者PCIe SSD,iops可以提升成千上万倍

用更好的网卡/网络

文件传输速率高,异地文件备份更快
主从数据复制数据传输时延更小
适合大数据量的分布式存储环境

老版本内核中,网络请求太高时会引发中断瓶颈,建议升级内核
多个网卡可以进行绑定,提高传输速率并能提高可用性

好的系统设计能有效提升数据库性能

关闭无用服务

减少系统开销
避免潜在安全隐患

尽可能使用本地高速存储

坚决不使用nfs
除非是基于SSD的高速网络分布式存储
用于备份场景除外

让数据库跑在专用的服务器上,不混搭

性能上不相互影响
提高安全性
必须混撘时要做好权限管理以及安全隔离

文件系统选择

优先选用xfs 或 ext4(rhel 7及以上,xfs已是默认fs)
zfs/btrfs比较小众
坚决不用ext3

其他内核选项

vm.swappiness ≤ 10
降低使用swap的概率
内核2.6.32-303及以上版本,慎重设置为0,可能引发OOM

MySQL高效的前提的更多相关文章

  1. mysql高效导入导出load data [infile][outfile]用法

    一.MySQL高效导入数据的方法load data infile load data infile语句从一个文本文件中以很高的速度读入一个表中.使用这个命令之前,mysqld进程(服务)必须已经在运行 ...

  2. MySQL索引类型一览 让MySQL高效运行起来(转)

    转自:http://www.php100.com/html/webkaifa/database/Mysql/2010/0409/4279.html 索引是快速搜索的关键.MySQL索引的建立对于MyS ...

  3. MySQL高效分页解决方案集(转)

    很久以前的一次面试中,被面试官问到这个问题,由于平时用到的分页方法不多,只从索引.分表.使用子查询精准定位偏移以外,没有使用到其它方法. 后来在看其它博客看到了一些不同的方案,也一直没有整理.今天有时 ...

  4. mysql高效分页方案及原理

    很久以前的一次面试中,被面试官问到这个问题,由于平时用到的分页方法不多,只从索引.分表.使用子查询精准定位偏移以外,没有使用到其它方法. 后来在看其它博客看到了一些不同的方案,也一直没有整理.今天有时 ...

  5. mysql高效获取两张表共同字段的交集数据

    例如下面两站表A,B.A表和B表分别有5-10w数据.A表结构如下:id bid name title publisher extraB表结构如下id bid name title publisher ...

  6. MySQL高效分页解决方案集

    一,最常见MYSQL最基本的分页方式: select * from content order by id desc limit 0, 10 在中小数据量的情况下,这样的SQL足够用了,唯一需要注意的 ...

  7. mysql 高效分页控件及c#调用实例

    第一.首先在mysql中创建一个存储过程 BEGIN /* @selectSql VARCHAR(5000), --sql语句 @orderWhere VARCHAR(200), --排序条件 @pa ...

  8. MySQL高效获取记录总数

    通常mysql获取查询记录总数我们使用如下语句: SELECT COUNT(*) FROM users WHERE k='avs';  或:SELECT id FROM goods WHERE k=' ...

  9. Mysql高效插入/更新数据

    从tushare抓取到的财务数据,最开始只是想存下来,用的办法想简单点,是:插入--报错-update 但发现这个方法太蠢,异常会导致大量无效连接,改为: for idx,row in d2.iter ...

随机推荐

  1. HTTP协议(web开发)

    HTTP协议 HTTP协议简介 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式.协作式和超媒体信息系统的应用层协议.HTTP是万维网的数 ...

  2. E - Radar Installation

    Assume the coasting is an infinite straight line. Land is in one side of coasting, sea in the other. ...

  3. vs2017默认以管理员运行

    1. 打开VS的安装目录,找到devenv.exe,右键,选择“兼容性疑难解答”. 2. 选择“疑难解答程序” 3. 选择“该程序需要附加权限” 4. 确认用户帐户控制后,点击测试程序,不然这个对话框 ...

  4. PDO 基础知识

    PDO: 一.含义: 数据访问抽象层 二.作用 :通过PDO能够访问其它的数据库 三. 用法: 1.造对象 ①$dsn="mysql:dbname=zz(数据库名);host=localho ...

  5. ARM Linux Oops使用小结(转)

    出现Oops消息的大部分错误时因为对NULL指针取值或者因为用了其他不正确的指针值. Oops如何产生的解释如下:     由于处理器使用的地址几乎都是虚拟地址,这些地址通过一个被称为“页表”的结构被 ...

  6. .NET Core开发日志——Model Binding

    ASP.NET Core MVC中所提供的Model Binding功能简单但实用,其主要目的是将请求中包含的数据映射到action的方法参数中.这样就避免了开发者像在Web Forms时代那样需要从 ...

  7. HDU5988/nowcoder 207G - Coding Contest - [最小费用最大流]

    题目链接:https://www.nowcoder.com/acm/contest/207/G 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5988 ...

  8. 一道hive SQL面试题

    一.hive中实现方法 基表: 组表: gt   gid gname 1001 g1 1002 g2 1003 g3 create table g( gid int, gname string )ro ...

  9. linux:基本概念和操作

    1. 终端 Linux 默认提供了 6 个纯命令行界面的 “terminal”(准确的说这里应该是 6 个 virtual consoles)来让用户登录,在物理机系统上你可以通过使用[Ctrl]+[ ...

  10. PHP之对象类型

    PHP之object对象 对象初始化 要创建一个新的对象object,使用new语句实例化一个类: 转化为对象 如果讲一个对象转化成对象,它将不会有任何变化.如果其它任何类型的值被转化成对象,将会创建 ...