美文网首页
Mysql优化

Mysql优化

作者: JumpBorderLine | 来源:发表于2019-08-27 11:20 被阅读0次

    1、软优化

    1.1 EXPLAIN或DESC命令

    使用该命令分析一条查询语句的执行信息,其中会显示索引和查询数据读取条数等信息。也可使用它分析一条查询语句执行的信息,其中会显示索引(key)和查询数据读取数据条数等信息。

    1.2 优化子查询(join)

    使用join代替子查询,子查询嵌套循环,嵌套查询时会建立一张临时表,临时表的建立和删除会有较大的系统开销,而连接查询不会创建临时表,因此效率比嵌套子查询高。

    1.3 使用索引

    创建索引、使用索引。创建后可以使用profile查看执行时间。

    创建索引:create index 索引名 from 表名(列名)。

    详情参考:https://www.cnblogs.com/xu-xiaofeng/p/7673776.html

    1.4 分解表

    字段较多的表,若某些字段使用频率较低,将其分离出来从而形成新的表。

    1.5 中间表

    大量连接查询的表可以创建中间表,从而减少在查询时造成的连接耗时。

    1.6 增加冗余字段

    减少连接查询以提高效率。

    2、硬优化

    2.1 硬件三件套

    配置多核和频率高的CPU,多核可以执行多个线程;

    配置大内存,提高内存,既提高缓存区容量,减少磁盘I/O时间,从而提高响应速度;

    配置高速磁盘或合理分布磁盘,提高并行操作能力。

    2.2 优化数据库参数

    优化数据库参数可以提高资源利用率,从而提高MySQL服务器性能.MySQL服务的配置参数都在my.cnf或my.ini,下面列出性能影响较大的几个参数.

    key_buffer_size:索引缓冲区大小

    table_cache:能同时打开表的个数

    query_cache_size和query_cache_type:前者是查询缓冲区大小,后者是前面参数的开关,0表示不使用缓冲区,1表示使用缓冲区,但可以在查询中使用SQL_NO_CACHE表示不要使用缓冲区,2表示在查询中明确指出使用缓冲区才用缓冲区,即SQL_CACHE.

    sort_buffer_size:排序缓冲区

    2.3 分库分表

    主从数据库,配置master主数据库,设置好服务id与日志文件,它主要负责更新操作,从数据库slave,设置好服务id与日志文件(为了避免主数据库宕机后无机器代替,故从数据库的日志文件名与主数据库的一样),然后开启从数据库的IO线程与SQL线程。

    2.4 缓存集群

    相关文章

      网友评论

          本文标题:Mysql优化

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