如何优化mysql数据库配置_MYSQL数据库优化《详细版》

MYSQL数据库优化方向

sql及索引优化,存储优化(程序)

数据库表结构优化

系统配置

硬件

一、SQL语句优化

1、Mysql慢查日志的开启和日志存储格式

查看慢查询日志是否开启:show variables like 'slow_query_log'

查看没索引日志是否记录:show variables like '%log%'

列表项‘log_queries_not_using_indexes’,如果是OFF

开启非索引日志记录:set global log_queries_not_using_indexes=on

查询时间设置(超过多长时间的sql记录慢查询日志):show variables like 'long_query_time';

这里测试设置为空0:set global long_query_time=0.0  (需要重新链接下mysql才回看到设置的值)

测试:随便查询几个表

找到慢查询日志存放目录:show varibels like '%log%';

| slow_query_log_file                     | /var/lib/mysql/ubuntu-slow.log

退出mysql,

sudo cat /var/lib/mysql/ubuntu-slow.log ,查看慢查日记记录内容

519ee2848d02245ea620b257a118f494.png

2、慢查询日志管理工具

mysqldumpslow

退出mysql,系统中:mysqldumpslow -h查看工具使用方法,比如:

sudo mysqldumpslow -t 5 /var/lib/mysql/ubuntu-slow.log

pt-query-digest功能比mysqldumpslow强的多

查看帮助命令:pt-query-digest --help

使用实例:sudo pt-query-digest /var/lib/mysql/ubuntu-slow.log

3、慢查询日志如何发现有问题的sql

744a55437e9f6e469e8f594c7490aa2e.png

rows examine扫描行数。

4、explain查询和分析sql执行计划,先计划在执行

5b5e62aeababd65cde334d936fa0ad17.png

a0127225eb8c850df2c153796fe42442.png

using filesort 和using temporary一般是order by 和group by导致的。

5、max()优化

max()直接使用会扫描所有行,创建索引后不需要扫描:

stelin-2144804

创建索引:explain select max(payment_date) from payment \G;

命::explain select max(payment_date) from payment \G;

6、子查询优化

优化成 join..on(链接方式,若果一对多,注意重复数据处理ditinct)

7、group by优化

sql:EXPLAIN SELECT actor.first_name,actor.last_name,COUNT(*) FROM film_actor INNER JOIN actor USING(actor_id) GROUP BY film_actor.actor_id;

操作了大量的io(filesort)

优化成子查询:

EXPLAIN SELECT actor.first_name,actor.last_name,c.cnt FROM actor INNER JOIN (SELECT film_actor.actor_id,COUNT(*) AS cnt FROM film_actor GROUP BY actor_id) AS c USING(actor_id);

group 多表链接尽量使用子查询。

8、limit优化

普通sql:EXPLAIN SELECT f.film_id,f.description,f.title FROM film f LIMIT 0,5;扫描全表,type是all

第一步优化:EXPLAIN SELECT f.film_id,f.description,f.title FROM film f ORDER BY f.film_id LIMIT 0,5;

通过一个ID排序,也是扫描全表但是,type是index(索引类型)

第二步优化:EXPLAIN SELECT f.film_id,f.description,f.title FROM film f WHERE film_id<=56 AND       film_id>50 ORDER BY f.film_id LIMIT 0,5;

通过记录上次id位置,避免扫描全表,注意适用于ID递增,没有空缺的表。

二、索引优化

1、选择合适的列建立索引

e28be9d0673c60e994694c966dd4c9b4.png

列的离散度,是指列的唯一性。离散度越大,唯一性越大。比如:SELECT COUNT(DISTINCT p.customer_id), COUNT(DISTINCT p.staff_id) FROM payment AS p,统计的customer_id,比staff_id大,说明,离散密度就大。

2、SQL优化索引

32733f3292c8d6a90762022c80dc61dc.png

e65c50451aa7aeb05728adb2478df42b.png

78b49521ac1f8ec7a250e38bb0853b84.png

优化重复和冗余的索引。此工具可以显示重复和冗余的索引,以及解决办法。

3、索引维护(删除不用的索引)

3e4f8d8e74f73381fc63612d345feaa3.png

三、数据化结构优化

1、选择合适的数据类型

08c97d7acd07c2f476c680aece1c0679.png

39df9b81cc867338e3739a6a209d22c2.png

f454a00725865847e65cb619a78f6e2d.png

2、范式化优化

4ba764dfe0de9936870a2263337a188e.png

f6fb3b1f1d5221338eb81031e902d477.png

比如删除表里面所有饮料的商品,结果饮料分类和描述也删除了。

3、反范式化优化

4891d0fa25ff83be4b0737b03dc6c454.png

d6aa35fa2f80963c9a763026641f18e8.png

7e8582503e2e879f2493d6966873b511.png

a0b26d7d80a9db48ae5b2cb6cb34d400.png

b8c43ea85082878148f574e05a7542ab.png

4、表垂直拆分

cd632f5f293eb369aefe4b33bface6b8.png

062fe549487fb8fb975428b774acd5be.png

45ab9dca99eda32dcd078b1a57c77125.png

b66fa91d98b9e25067b1fb9fce5e8c5a.png

5、表的水平拆分

3948d13adc7e593f2bed7d6d8712eee9.png

d8b067b1db8985ce42accf6d1fae444e.png

四、系统配置优化

1、数据库操作系统配置的优化

45031b8384d36c5b0d3597ee93bc01d1.png

562edc812629772aa9ba657c1dc0a41c.png

2、mysql常用配置参数

292285198888883855fbbbaa178fd564.png

0c001fb38d336bd920fe3d6fb8f1aa15.png

93f112c49a6f21cc2498cae158884f76.png

dbe7497f6745437a2284d3a19dfa23d1.png

b41892767cf54675e1a4d283e7ae057c.png

efbdb38adffbd63c5ce2534826f7f5fc.png

4d996c3c2570227f4793a64e3fc58d82.png

五、服务器硬件优化

1、CPU的选择

161911a23b85633d3b081a431ef6dc97.png

通常选择单核更快的CPU

2、磁盘的选择

49db7f87e27f49a05af0ad523c5ab94e.png

RAID0,读写最好,RAIA1,数据不会丢失,安全性高。通常选择RAID1+0

84420885c8951eb62f85dd2fc5ac927e.png

68e1534462e736eff8c9cab8679bc378.png

大小: 104.2 KB

85624252ddc8f90aba0bec93e8a0b421.png

大小: 102.3 KB

145bdf77ed1a3f4aa205e02dd6ec4c86.png

大小: 146.8 KB

90d81708fdce7ab4e1f4a53fe428538b.png

大小: 104.1 KB

98c61be06d033e12ccb565bccdb87380.png

大小: 132.1 KB

d9761901aff7513c03cda5880eaba319.png

大小: 85.5 KB

784e5510bf640d2901aef4976e3651e8.png

大小: 90.2 KB

42c9c8fc03d29b78635175f1e8dbf9a6.png

大小: 57 KB

26c65563d2f7ccea0c6680d64db0aa35.png

大小: 94.3 KB

ca15526519efe95e731dd0c4664c4582.png

大小: 90.9 KB

443c14e239bdbbd5ccff06886d25c261.png

大小: 97.3 KB

73a9352a388a37e339c8796e7810799c.png

大小: 99 KB

ea1784d54fe401c7cd8904907602a5a4.png

大小: 174.2 KB

d07e490801427a4e90b8182ee5141014.png

大小: 60.8 KB

a697a1e097338580600844a36b7c02c6.png

大小: 134.5 KB

d9d707f887c441ee76ff80f78a61b160.png

大小: 124.9 KB

e12c7ccc309cfb0d276a95ff37fd9eed.png

大小: 90.6 KB

0deaa1c03d39e40e5b9f4980828433d5.png

大小: 146.7 KB

929ca7486a28e67aa84f9b2cd7609d39.png

大小: 49.1 KB

52fb33a6a7b42c61adb1cedfe2ad267f.png

大小: 146.7 KB

cf2bdf07993d532643bd308b0f7226f2.png

大小: 49.1 KB

aee94630a468fb46e107860ee4705e86.png

大小: 139 KB

e520ae2719dc6ad5e2a23f57181621f7.png

大小: 132.2 KB

472308c6663f19225855286cb8d21cf3.png

大小: 45.1 KB

4f5c6bd8408e47df17c1872fd48e688d.png

大小: 75.3 KB

25b18fb5663984f1f4d823281223889b.png

大小: 117.1 KB

e415b02679f7aadd7fec20c4856abb70.png

大小: 67.2 KB

217d10bc45d554e6a144f94d77ccffe8.png

大小: 122.7 KB

e5923a631117d1a0a9ab0881a0776acd.png

大小: 139.2 KB

4e01c1c835e8244fbae2c465de4a8c2c.png

大小: 130.6 KB

5b600fba3cf6737d66f8174c8050fe25.png

大小: 31.7 KB

bdff7d2a77bee11d4b5c1e28c187b439.png

大小: 27.7 KB

ac9488a7685411efaf8496cad47d9931.png

大小: 46.6 KB

dfa47021ca2c572b5c1e2d4e39a1b5c1.png

大小: 29.4 KB

8c5ef9dcbc3e21e622df9e14bfdd5d97.png

大小: 39.3 KB

30b56d0723f5f8c6ca1fa1d8c9a7b85d.png

大小: 24.3 KB

bcd99c403057ff376c3707104bc4001e.png

大小: 80.3 KB

b61e9d0916b6e168fe101b3608737da4.png

大小: 44.9 KB

bce2eafff3e9f1ab98e3b4295fc7b87e.png

大小: 166.3 KB

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2014-10-17 17:47

浏览 545

分类:数据库

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值