• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MySQL 开发实践

MySQL 开发实践

作者:Code-X的博客 字体:[增加 减小] 来源:互联网 时间:2017-08-22

Code-X的博客通过本文主要向大家介绍了mysql,sql,select等相关知识,希望本文的分享对您有所帮助

在开发过程中,数据库往往是很重要的一部分,数据库的优化以及开发过程中遇到的问题往往困扰者开发者。

 

下面我们来看看平时经常会遇到的一些mysql的问题吧:

 

1:如果遇到mysql负载高时,有什么办法:

      mysql负载高往往是一些sql语句耗时多产生的,怎么去找到这些sql语句呢?

      这个时候慢查询日志分析就排上用场了

使用MySQLdumpslow进行慢查询日志分析

 

MySQLdumpslow -s t -t 10 ***.txt

 

该语句的意思是输出耗时最多的TOP10条语句

 

-s:排序方法(后面跟的参数:t表示按时间,c表示按次数,r表示按返回记录数)

 

-t:TOP条数(后面跟的参数表示数量)

 

通过慢查询日志分析,就可以找到最耗时的sql

 

 

慢查询相关的配置参数

log_slow_queries:是否打开慢查询日志,得先确保=ON后面才有得分析

long_query_time:查询时间大于多少秒的SQL被当做是慢查询,一般设为1S

log_queries_not_using_indexes:是否将没有使用索引的记录写入慢查询日志

slow_query_log_file:慢查询日志存放路径

 

2:如何进行sql优化:

 

使用Explain分析sql语句执行计划

 

使用Profiles分析sql语句消耗的时间和资源

(具体的方法这里就不详细介绍了,以后说到sql语句分析的时候再仔细说这两个方法吧)

 

sql优化常用的一些技巧:

 

      2.1:使用索引,避免全表扫描

      注意:索引字段上加函数会导致索引失效

 

+----------+------------+---------------------------------------+
| Query_ID | Duration   | Query                                 |
+----------+------------+---------------------------------------+
|        1 | 0.00019800 | select * from mytable where id=10    |
|        2 | 0.28652100 | select * from mytable where id+10=20  |
+----------+------------+---------------------------------------+

 

 

 

 

 

      2.2:select尽量选出需要的字段,尽量不要*

 

 

+----------+------------+-----------------------------------------------------+
| Query_ID | Duration   | Query                                               |
+----------+------------+-----------------------------------------------------+
|        1 | 0.02635800 | select count(1) from ( select id from mytable ) a   |
|        2 | 1.48625900 | select count(1) from ( select * from mytable ) a    |
+----------+------------+-----------------------------------------------------+

 

 

 

 

 

      2.3:尽早过滤,让Join或者Union等后续操作的数据量尽量小

 

      2.4:逻辑层进行一些数据排序,时间函数计算等

      sql函数的优化有很多,这里简单说几种

 

 

3:如果sql优化已经差不多的,但是数据库的请求量还是很大,并且还在增加,如何解决呢?

 

      3.1:分库分表

 

      3.2:使用集群,读写分离

 

      3.3:增加业务的cache层

 

      3.4:使用连接池

 

 

4:mysql如何做主从数据同步?

 

      复制机制:

 

      主服务器通过复制机制,将主服务器的写操作通过binlog传到从服务器中生成中继日志(relaylog),从服务器再将中继日志redo,使得主库和从库的数据保持同步

 

 

5:mysql有哪些存储引擎?

 

      在平时中最常见的的存储引擎有MyISAM和InnoDB,我们下面来说说这2中引擎的区别吧:

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 分享下mysql各个主要版本之间的差异
  • MySQL essential版本和普通版本有什么区别?
  • redhat 5.4下安装MYSQL全过程
  • 如何用SQL命令查看Mysql数据库大小
  • 解析mysql中如何获得数据库的大小
  • 解析mysql修改为utf8后仍然有乱码的问题
  • 5个常用的MySQL数据库管理工具详细介绍
  • 解析在MySQL里创建外键时ERROR 1005的解决办法
  • 解析远程连接管理其他机器上的MYSQL数据库
  • mysql 精简过程(删除一些文件)

相关文章

  • 2018-12-05MySQL之——查询重复记录、删除重复记录方法大全
  • 2017-05-11linux修改mysql数据库文件的路径
  • 2017-05-11Mysql 数据库访问类
  • 2018-12-05MySQL查看数据库表容量大小
  • 2018-12-05mysql高级联结-自联结使用实例
  • 2018-12-05mysql 的replace into详解
  • 2018-12-05linux下perl操作mysql数据库(需要安装DBI)
  • 2018-12-0510分钟学会理解和解决MySQL乱码问题
  • 2017-09-29mysql-connector-odbc-5.1.13-win32.msi安装成功后,ODBC数据源管理器无法显示该MySql驱动的问题
  • 2018-12-05解决Oracle 11gR2 RAC 无法在客户端通过scanIP连接数据库

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • SQL2000 全文索引完全图解
    • MySQL数据库与表的最基本命令大盘点
    • 详细介绍mysql 协议的服务端握手包及对其解析
    • SQL点滴24 监测表的变化
    • 世界杯猜想活动的各类榜单的SQL语句小结
    • 关于设计经验的10篇课程推荐
    • 全文本检索的应用(3)
    • 超详细的SQL语句语法汇总
    • SQL Server2005打开数据表中的XML内容时报错的解决办法
    • Oracle 数据库导出(exp)导入(imp)说明

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有