Linux性能优化-SQL慢查询

时间:2019-01-23
本文章向大家介绍Linux性能优化-SQL慢查询,主要包括Linux性能优化-SQL慢查询使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

 

 

安装环境

git 下载相关例子代码

git clone https://github.com/feiskyer/linux-perf-examples

案例由三个容器组成,一个MySql数据库应用,一个商品搜索应用,一个数据处理应用
其中商品搜索应用提供了HTTP借口
/,                                  返回Index Page
/db/insert/products/,    插入指定数据量的商品信息
/products/,                      查询指定商品的信息,并返回处理事件

案例的整体结构如下

运行并检查docker容器中的应用


make run
docker run --name=mysql -itd -p 10000:80 -m 800m feisky/mysql:5.6
32f22ce141ba1279ce97cf6f6c00a51c3640edd494e01141bb2ef316ac579110
docker run --name=dataservice -itd --privileged feisky/mysql-dataservice
de3b1b96cabc40275b9a0c0b5773c87def36cb6334bab16d3f374c9312193971
docker run --name=app --network=container:mysql -itd feisky/mysql-slow
83c5dce8e2b20f1470f3b952b2858618d2de56c04d9c3933a5dd270d06825d6d



docker ps
CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS              PORTS                             NAMES
83c5dce8e2b2        feisky/mysql-slow          "python /app.py"         3 seconds ago       Up 3 seconds                                          app
de3b1b96cabc        feisky/mysql-dataservice   "python /dataservi..."   4 seconds ago       Up 3 seconds                                          dataservice
32f22ce141ba        feisky/mysql:5.6           "docker-entrypoint..."   4 seconds ago       Up 4 seconds        3306/tcp, 0.0.0.0:10000->80/tcp   mysql

检查MySql是否初始化完成

docker logs -f mysql
2019-01-23 04:54:55 1 [Note] InnoDB: Compressed tables use zlib 1.2.11
2019-01-23 04:54:55 1 [Note] InnoDB: Using Linux native AIO
2019-01-23 04:54:55 1 [Note] InnoDB: Using CPU crc32 instructions
2019-01-23 04:54:55 1 [Note] InnoDB: Initializing buffer pool, size = 5.0M
2019-01-23 04:54:55 1 [Note] InnoDB: Completed initialization of buffer pool
2019-01-23 04:54:55 1 [Note] InnoDB: Highest supported file format is Barracuda.
2019-01-23 04:54:55 1 [Note] InnoDB: 128 rollback segment(s) are active.
2019-01-23 04:54:55 1 [Note] InnoDB: Waiting for purge to start
2019-01-23 04:54:55 1 [Note] InnoDB: 5.6.42 started; log sequence number 1625997
2019-01-23 04:54:55 1 [Note] Server hostname (bind-address): '*'; port: 3306
2019-01-23 04:54:55 1 [Note] IPv6 is available.
2019-01-23 04:54:55 1 [Note]   - '::' resolves to '::';
2019-01-23 04:54:55 1 [Note] Server socket created on IP: '::'.
2019-01-23 04:54:55 1 [Warning] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
2019-01-23 04:54:55 1 [Warning] 'proxies_priv' entry '@ root@32f22ce141ba' ignored in --skip-name-resolve mode.
2019-01-23 04:54:55 1 [Note] Event Scheduler: Loaded 0 events
2019-01-23 04:54:55 1 [Note] mysqld: ready for connections.
Version: '5.6.42-log'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server (GPL)

检查商品搜索应用的web请求是否正常

curl http://[IP]:10000
Index Page