MySQL优化-老韩视频笔记(二)
2016-01-10 14:52
656 查看
一.SQL优化
如何从一个大的项目中,迅速的定位执行速度慢的语句——定位慢查询。
了解MySQL数据库的一些运行状态
想知道当前MySQL运行的时间
一共执行了多少次增删改查操作
当前有多少连接,最大并发是多少
二.show [global|session] status
//默认是session,当前回话(窗口)
show status like 'uptime' //数据库已经运行了多长时间,单位是秒
show status like 'com_select' //执行了多少次select语句
show status like 'connections' //现在MySQL有多少个连接
show status like 'slow_queries' //显示慢查询次数
三.定位慢查询
默认情况下,MySQL认为10s才是一个慢查询。
show variables;
show variables like 'long_query_time';//显示慢查询的设置时间
set long_query_time=1;//修改慢查询时间为1s
1.建表
构建一张大表,用来制造慢查询的情境。
尽量不要用主从复制,这样数据都是重复的,测试价值不高,和实际数据相差太大。
insert into table(1,'lxy');
insert into table select * from table;
用存储过程来解决。
2.数据对象
表,存储过程,视图,函数,触发器等等。
比如创建自定义函数:
create function xxx()
begin...end $$
sql="select xxx() from table"; //该函数可以直接当做MySQL内置函数来使用
创建存储过程也一样:
create procedure xxx()
begin...end $$
3.找到慢查询
show status like "slow_queries";// 慢查询出现的次数
可以把慢查询的sql记录到我们的一个日志中去,默认情况下是不记录日志的,需要在启动MySQL的时候,指定记录慢查询才可以。
mysqlId.exe --safe-mode --slow-query-log
安全模式:会写日志,可以恢复数据,因为执行的sql语句都记录了下来。
启动之后,日志的路径在my.ini中的datadir这个目录下,这个目录尽量不要改。
数据库迁移需要使用指令,因为索引是和机器物理地址是绑定的,如果只是拷贝内容到新的地方索引是不生效的,所以上述目录尽量不要改变。
如何从一个大的项目中,迅速的定位执行速度慢的语句——定位慢查询。
了解MySQL数据库的一些运行状态
想知道当前MySQL运行的时间
一共执行了多少次增删改查操作
当前有多少连接,最大并发是多少
二.show [global|session] status
//默认是session,当前回话(窗口)
show status like 'uptime' //数据库已经运行了多长时间,单位是秒
show status like 'com_select' //执行了多少次select语句
show status like 'connections' //现在MySQL有多少个连接
show status like 'slow_queries' //显示慢查询次数
三.定位慢查询
默认情况下,MySQL认为10s才是一个慢查询。
show variables;
show variables like 'long_query_time';//显示慢查询的设置时间
set long_query_time=1;//修改慢查询时间为1s
1.建表
构建一张大表,用来制造慢查询的情境。
尽量不要用主从复制,这样数据都是重复的,测试价值不高,和实际数据相差太大。
insert into table(1,'lxy');
insert into table select * from table;
用存储过程来解决。
2.数据对象
表,存储过程,视图,函数,触发器等等。
比如创建自定义函数:
create function xxx()
begin...end $$
sql="select xxx() from table"; //该函数可以直接当做MySQL内置函数来使用
创建存储过程也一样:
create procedure xxx()
begin...end $$
3.找到慢查询
show status like "slow_queries";// 慢查询出现的次数
可以把慢查询的sql记录到我们的一个日志中去,默认情况下是不记录日志的,需要在启动MySQL的时候,指定记录慢查询才可以。
mysqlId.exe --safe-mode --slow-query-log
安全模式:会写日志,可以恢复数据,因为执行的sql语句都记录了下来。
启动之后,日志的路径在my.ini中的datadir这个目录下,这个目录尽量不要改。
数据库迁移需要使用指令,因为索引是和机器物理地址是绑定的,如果只是拷贝内容到新的地方索引是不生效的,所以上述目录尽量不要改变。
相关文章推荐
- MySQL优化-老韩视频笔记(一)
- Mysql limit 优化,百万至千万级快速分页 复合索引
- Windows下配置Mysql
- MySQL的root用户密码忘了怎么办
- MySql的锁问题和事物
- mysql 导入txt中记录
- 关于Mysql+EF6本地运行和发布没有问题,发布到服务器上出现问题的解决方案
- MySQL日期数据类型、时间类型使用总结
- 【mysql】count(*),count(1)与count(column)区别
- Mysql 中ERROR 1406 (22001): Data too long for column " xxxx"
- Mysql 中ERROR 1406 (22001): Data too long for column " xxxx"
- MySQL 设置允许远程登录
- mysql 数据库性能追踪与分析
- 找回mysql root用户的密码
- Mysql中文乱码问题完美解决方案
- Mysql 使用with rollup对聚合结果进行聚合
- Mysql中校对集utf8_unicode_ci与utf8_general_ci的区别说明
- MySql获取随机行
- MYsQL优化SQL
- DTRACE -MYSQL