Welcome 微信登录

首页 / 数据库 / MySQL

MySQL查询优化之explain的深入解析

MySQL查询优化之explain的深入解析

在分析查询性能时,考虑EXPLAIN关键字同样很管用。EXPLAIN关键字一般放在SELECT查询语句的前面,用于描述MySQL如何执行查询操作、以及MySQL成功返回结果集需要执行的行数。explain 可以帮助我们分析 select 语句,让我们知道查询效率低下的原因,从而改进我们查询,让查询优化器能够更好的工作。一、MySQL 查询优化器是如何工作的MySQL 查询优化器有几个目标,但是其中最主要的目标是尽可能地使用索引,并且使用最严格的索引来消除尽...
MySQL查询优化之索引的应用详解

MySQL查询优化之索引的应用详解

糟糕的SQL查询语句可对整个应用程序的运行产生严重的影响,其不仅消耗掉更多的数据库时间,且它将对其他应用组件产生影响。如同其它学科,优化查询性能很大程度上决定于开发者的直觉。幸运的是,像MySQL这样的数据库自带有一些协助工具。本文简要讨论诸多工具之三种:使用索引,使用EXPLAIN分析查询以及调整MySQL的内部配置。MySQL允许对数据库表进行索引,以此能迅速查找记录,而无需一开始就扫描整个表,由此显著地加快查询速度。每个表最多可以做到16个索引,此外...
mysql_fetch_row()与mysql_fetch_array()的使用介绍

mysql_fetch_row()与mysql_fetch_array()的使用介绍

mysql_fetch_array --从结果集中取得一行作为关联数组,或数字数组,或二者兼有 说明array mysql_fetch_array ( resource result [, int result_type])返回根据从结果集取得的行生成的数组,如果没有更多行则返回 FALSE。 mysql_fetch_array() 是 mysql_fetch_row() 的扩展版本。除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,...
Mysql中order by、group by、having的区别深入分析

Mysql中order by、group by、having的区别深入分析

order by 从英文里理解就是行的排序方式,默认的为升序。 order by 后面必须列出排序的字段名,可以是多个字段名。 group by 从英文里理解就是分组。必须有“聚合函数”来配合才能使用,使用时至少需要一个分组标志字段。什么是“聚合函数”? 像sum()、count()、avg()等都是“聚合函数” 使用group by 的目的就是要将数据分类汇总。 一般如: select 单位名称,count(职工id),sum(职工工资) form [某...
基于Mysql的IP处理函数inet_aton()与inet_ntoa()的深入分析

基于Mysql的IP处理函数inet_aton()与inet_ntoa()的深入分析

有个统计需求,需要对IP进行分类统计,Mysql提供了inet_aton()和inet_ntoa()函数进程处理。具体可以查看官方手册。INET_ATON(expr)给出一个作为字符串的网络地址的点地址表示,返回一个代表该地址数值的整数。地址可以是4或8比特地址。mysql> select inet_ntoa(3507806248);+-----------------------+| inet_ntoa(3507806248) |+--------...
如何用word vb宏来生成sql

如何用word vb宏来生成sql

昨天BOSS下了个命令让我用word宏的方式来快速生成sql,这样在我们建表的时候就不用在一条一条元数据的输入。从而提高效率节约成本:接到命令后就开始着手来做,一边上网搜相关的现成的材料,一边看vb宏的视频教程。终于让我写出了这个程序,虽说有点儿小吧,可是感觉挺好的。这里的vb宏要针对固定的数据库数据字典表格进行的。由于代码太长就不拿出来了,这里是word中的表格式和vb运行后的结果如下:文件名称T_Test中文描述用户信息表序号字段名中文说明数据类型长度...
基于mysql多实例安装的深入解析

基于mysql多实例安装的深入解析

相信大多数人都遇到过多实例安装mysql吧,相信大多数人只要找到一份多实例安装的教程就会很容易搞定了,但是越是顺利的安装过程越让我们不安,为什么呢,当我们在按照教程一步一步来的时候,你知道每句话的意思的目的吗?出现错误以后的我们又该怎么办呢?现在我为大家展示我的安装过程,各种纠结,各种错误。首先说明一个场景:我的电脑是ubuntu系统,之前apt-get自动安装过mysql。这也是出现错误最多的原因之一。下面是我的安装过程,其中充斥着各种错误:复制代码 代...
深入mysql主从复制延迟问题的详解

深入mysql主从复制延迟问题的详解

面试mysqldba的时候遇到一个题:描述msyql replication 机制的实现原理,如何在不停掉mysql主库的情况下,恢复数据不一致的slave的数据库节点?MySQL的复制(replication)是一个异步的复制,从一个MySQL instace(称之为Master)复制到另一个MySQL instance(称之Slave)。实现整个复制操作主要由三个进程完成的,其中两个进程在Slave(Sql进程和IO进程),另外一个进程在Master(...
mysql备份与恢复详解

mysql备份与恢复详解

MYSQL的备份有多少种,请简要的描述:数据库分逻辑备份物理备份物理备份又分冷备和热备A.直接拷贝数据文件到安全地方进行保存B.使用MYSQLHOSTCOPY备分数据C.使用MYSQLDUMP备份数据D.使用MYSQL的同步复制,实现数据实时数据同步备份常用的逻辑备份主要就是两种:一种是将数据生成为可以完全重现当前数据库中的数据的insert语句,另一种是将数据通过逻辑备份软件,将数据库表的数据以特定分隔符进行分割后记录在文本中。对于第一种生成insert...
解析mysql 5.5字符集问题

解析mysql 5.5字符集问题

安装了个5.5版本的mysql,字符集出现了问题,之前的mysql服务器都是通过在my.cnf配置文件中进行配置便可,可是今儿怎么着都不行一直报错:当时系统中也没有配置错误日志,所以只能是先配置下错误日志的位置,看看到底是哪里出错了:复制代码 代码如下:user = mysqlpid-file = /var/run/mysqld/mysqld.pidsocket = /var/run/mysqld/mysqld.sockport = 3306basedir...
解析mysql中的auto_increment的问题

解析mysql中的auto_increment的问题

今儿在逛论坛时,发现一个看似很简单的问题,却引起了大家的广泛关注:这是一道很早的面试题:一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15 。答案:如果表的类型是MyISAM,那么是18。 因为MyISAM表会把自增主键的最大ID记录到数据文件里,重启MySQL自增主键的最大ID也不会丢失。 如果表的类型是InnoDB,那么是15。 InnoD...
jdbc操作数据库的基本流程详解

jdbc操作数据库的基本流程详解

所有的JDBC应用程序都具有下面的基本流程: 1、加载数据库驱动并建立到数据库的连接。 2、执行SQL语句。 3、处理结果。 4、从数据库断开连接释放资源。下面我们就来仔细看一看每一个步骤:其实按照上面所说每个阶段都可得单独拿出来写成一个独立的类方法文件。共别的应用来调用。1、加载数据库驱动并建立到数据库的连接:复制代码 代码如下:String driverName="com.mysql.jdbc.Driver";String connectiio...
centos下安装mysql服务器的方法

centos下安装mysql服务器的方法

项目需要就在现有的服务器上面重新安装了个mysql服务器,还挺费劲儿呢,因为之前都是在我的笔记本上面试验的,它的系统是Ubuntu的,什么路径啊,启动方式啊。都不一样所以这次还是让我纠结了一把:下面把我安装过程中遇到的问题给传上来,首先rpm格式安装就不多说了,主要是mysql的配置文件在:/etc/my.cnf这里,需要修改:复制代码 代码如下:[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mys...
解析MySQL创建外键关联错误 - errno:150

解析MySQL创建外键关联错误 - errno:150

当你试图在mysql中创建一个外键的时候,这个出错会经常发生,这是非常令人沮丧的。像这种不能创建一个.frm 文件的报错好像暗示着操作系统的文件的权限错误或者其它原因,但实际上,这些都不是的,事实上,这个mysql报错已经被报告是一个mysql本身的bug并出现在mysql 开发者列表当中很多年了,然而这似乎又是一种误导。 在很多实例中,这种错误的发生都是因为mysql一直以来都不能很好的支持的关系的问题, 更不幸的是它也并没有指明到底是哪一个问题会导致上...
解析Mysql Profiling的使用

解析Mysql Profiling的使用

profiling是个很好用的mysql性能分析工具,今儿就来试验下profiling的功能。感谢 有爱玫瑰的博文:mysql 的 sql 性能分析器主要用途是显示 sql 执行的整个过程中各项资源的使用情况。分析器可以更好的展示出不良 SQL 的性能问题所在。下面我们举例介绍一下MySQL SQL Profiler的使用方法:首先,开启 MySQL SQL Profiler复制代码 代码如下:mysql> SELECT @@profiling; +...
<< 81 82 83 84 85 86 87 88 89 90 >>