mysql优化之show status查看MySQL服务器状态信息

mysql优化之show status查看MySQL服务器状态信息
在LAMP架构的网站开发过程中,有些时候我们需要了解MySQL的服务器状态信息,譬如当前MySQL启动后的运行时间,当前MySQL的客户端会话连接数,当前MySQL服务器执行的慢查询数,当前MySQL执行了多少SELECT语句、执行了多少UPDATE/DELETE/INSERT语句等统计信息,从而便于我们根据当前MySQL服务器的运行状态进行对应的调整或优化工作. 在MySQL中,我们可以使用SHOW STATUS指令语句来查看MySQL服务器的状态信息,下面,我...

MySQL创建全文索引学习笔记

MySQL创建全文索引学习笔记
全文索引是mysql数据库索引的一种,全文索引可以快速的实现全文的搜索,它的类型为fulltext了,下面我们一起来看看MySQL创建全文索引的创建与mysql配置全文索引的方法,希望本文章对大家有帮助。 使用索引是数据库性能优化的必备技能之一。在MySQL数据库中,有四种索引:聚集索引(主键索引)、普通索引、唯一索引以及我们这里将要介绍的全文索引(FULLTEXT INDEX)。 全文索引(也称全文检索)是目前seo搜索引擎...

Mysql数据库union和order by优先级

Mysql数据库union和order by优先级
在Mysql的参考手册中,并没有对union和order by的优先级进行说明,它建议的方法是,对SQL语句加上(),这样能使SQL的语义更清晰. 例如,需要对union后的结果进行order by,则" (SELECT a FROM tbl_name WHERE a=10 AND B=1)        UNION        (SELECT a FROM tbl_name WHERE a...

MySQL写入插入数据优化配置

MySQL写入插入数据优化配置
*innodb_buffer_pool_size 如果用Innodb,那么这是一个重要变量,相对于MyISAM来说,Innodb对于buffer size更敏感,MySIAM可能对于大数据量使用默认的key_buffer_size也还好,但Innodb在大数据量时用默认值就感觉在爬了,Innodb的缓冲池会缓存数据和索引,所以不需要给系统的缓存留空间,如果只用Innodb,可以把这个值设为内存的70%-80%,和 key_buffer相同,如果数据量比较小也不怎么增加,那么不要把这个值设太高也可...

mysql删除超大表中的部分数据

mysql删除超大表中的部分数据
mysql中删除一般表数据我们会使用delete 或者truncate来清空表数据,但是如果碰到超大表时你会发现此方法有点困难了,下面我以一个mysql删除超大表中的部分数据为示例给各位同学介绍介绍. mysql普通删除表: delete 语句的定义:经常和数据库打交道的孩子们,删除数据的时候用的大多都是 delete 语句,现在让我们来看一下 delete语句的定义. DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM...

MySQL索引操作命令,创建索引,重建索引,查询索引,删除索引

MySQL索引操作命令,创建索引,重建索引,查询索引,删除索引
本篇文章主要是对MySQL索引操作方法做了一下总结,包括创建索引、重建索引、查询索引、删除索引的操作。以下所列示例中中 `table_name` 表示数据表名,`index_name` 表示索引名,column list 表示字段列表(如:`id`,`order_id`)。 1、创建索引 索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER TABLE来给表增加索引。以下命令语句分别展示了如何创建主键索引(PRIMARY KEY),...

mysql查询表索引的命令show

mysql查询表索引的命令show
mysql中查看索引我们会用到show命令,如果有show index或者show keys之类的,下面我们一起来看看mysql查询表索引的命令show具体方法吧. MySQL查询表索引命令的有两种命令形式,代码如下: mysql> SHOW index FROM `tblname`; 或者: mysql> SHOW keys FROM `tblname`; 运行以上命令得到的结果,下面将将所得的结果中每列的意思做一下说明. Table 表的名称。 Non_unique 如果索引不能包括重复词,则为0。如...

查看MySQL启动时间以及运行了多长时间

查看MySQL启动时间以及运行了多长时间
查看MySQL启动时间以及运行了多长时间的方法有利用show与updtime或在linux中直接使用grep mysql 相关参数来查看,下面我们一起来看看. 一,uptime 可以查看系统的运行时间 show global status like 'uptime'; 二,利用linux命令查看 [root@dbserver ~]# ps aux | grep mysql root 29090 0.0 0.0 70232 1364 ? S Jun05 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/data/mysql --pid-file=/da...

MYSQL中group by做分组查询并排序

MYSQL中group by做分组查询并排序
使用 group by 分组后,查询的列表将按照主键的默认 asc 顺序排序,使用 order by 只能对分组后的列表起作用,原因是 order by 的优先级低于 group by,那么如何解决分组排序呢,下面我们一起来看具体操作办法. 那么如何解决使分组后的数据按照主键的 desc 排序输出呢? 答案有两种方法: 1、使用子查询先把表进行排序,然后对字表进行 group by 查询,此时得到的列将是子查询的得到的一条记录的列. 2、使用 max 函...

mysql中my.cnf 配置 日志类型及文件配置详解

mysql中my.cnf 配置 日志类型及文件配置详解
mysql有以下几种日志:错误日志:log-err ,查询日志:log ,慢查询日志:log-slow-queries ,更新日志:log-update ,二进制日志:log-bin.实例注释代码如下: [client] port = 3306 socket = /home/mysql/mysql/tmp/mysql.sock [mysqld] !include /home/mysql/mysql/etc/mysqld.cnf #包含的配置文件 ,把用户名,密码文件单独存放 port = 3306 socket = /home/mysql/mysql/tmp/mysql.sock pid-file...

Mysql启动报错’./mysql-bin.index’ not found的问题

Mysql启动报错’./mysql-bin.index’ not found的问题
今天试着更改了mysql的数据存储目录,如何更改mysql的存储目录,但是启动mysql一直提示Starting MySQL. ERROR! The server quit without updating PID file (/data/mysql/11Z.pid) 于是乎去查看mysql的错误日志,cat /data/mysql/11Z.err: 131204 09:09:15 mysqld_safe Starting mysqld daemon with databases from /data/mysql    /usr/loca...

合理使用mysql中的load data infile导入数据

合理使用mysql中的load data infile导入数据
mysql中load data infile用来加载外部文件导入到mysql数据表中,针对于一般的小数据量的load data infile是没有问题,但如果碰到上亿级别数据怎么处理呢,下面我们一起来看看. 基本语法,代码如下: load data  [low_priority] [local] infile 'file_name txt' [replace | ignore]    into table tbl_name    [f...

如何启用MySQL的查询语句缓存

如何启用MySQL的查询语句缓存
查询语句缓存意思就是大量操作时我们会保存上次查询的数据以减少数据库查询次数从而提升mysql访问性能,下面我们一起来看如何启用MySQL的查询语句缓存吧. 我们写的程序可能需要进行大量的数据库操作,数据库常常会成为产生瓶颈的原因,开启查询语句缓存也是优化MySQL的一个策略. MySQL 是我们开发程序常用的数据库,它具有在内存中缓存常用查询语句的能力,这样一个给定的查询语句再次被调用时,MySQL将立即从缓...

INSERT IGNORE 与 INSERT INTO的区别

INSERT IGNORE 与 INSERT INTO的区别
INSERT IGNORE 与INSERT INTO的区别就是INSERT IGNORE会忽略数据库中已经存在的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据. 例,insert ignore表示,如果中已经存在相同的记录,则忽略当前新数据; insert ignore into table(name) select name from table2 例,INSERT INTO有无数据都插入,如果主键则不插入. 1.insert语句一次可以插入多组值,每组值用一对圆括号括起来,用逗号分...

infobright中数据导入与避免特殊字符的方法

infobright中数据导入与避免特殊字符的方法
infobright 是基于mysql的,但不装mysql亦可,因为它本身就自带了一个,mysql可以粗分为逻辑层和物理存储引擎,infobright主要实现的就是一个存储引擎,但因为它自身存储逻辑跟关系型数据库根本不同,所以,它不能像InnoDB那样直接作为插件挂接到mysql,它的逻辑层是mysql的逻辑 层加上它自身的优化器. 一,导入数据 1,IEE也支持mysqlloader和insert语句 2,默认Loader ICE仅支持IB lorder,IEE默认使用的是是mysql ...

MySQL中DATE_FORMATE函数内置字符集解析

MySQL中DATE_FORMATE函数内置字符集解析
今天在利用DATE_FORMATE处理两个日期判断时发现提示 Illegal mix of collations (utf8_general_ci,COERCIBLE),这个是字符集问题呀,但我是日期怎么会这样,当时没看到,后来看到一篇文章才想起来,下面我们一起来看看解决办法. 处理一个SQL,简化过后的执行报错,代码如下: mysql> select date_format('2013-11-19','Y-m-d') > timediff('2013-11-19', '2013-11-20'); ERROR 1...

MySQL字符集编码的理解分析

MySQL字符集编码的理解分析
今天帮同事处理一个棘手的事情,问题是这样的,无论在客户机用哪个版本的mysql客户端连接服务器,发现只要服务器端设置了,character-set-server = utf8之后,character_set_client、 character_set_connection、character_set_results,就始终都是和服务器端保持一致了,即便在mysql客户端加上选项: --default-character-set=utf8 也不行,除非连接进去后,再手工执行命令: set names latin1,才会将client、connect...

Mysql中查找并删除重复数据的方法

Mysql中查找并删除重复数据的方法
(一)单个字段 1、查找表中多余的重复记录,根据question_title字段来判断,代码如下: select * from questions where question_title in (select question_title from people group by question_title having count(question_title) > 1) 2、删除表中多余的重复记录,根据question_title字段来判断,只留有一个记录,代码如下: delete from questions where peopleId in (select peopleId from people group...

mysql删除字段为空的数据详解

mysql删除字段为空的数据详解
在mysql中空与空值是两码事的,也就是大家说null或“”这种了,下面我总结了一些关于在mysql null与“”值的删除与理解方法与大家分享. 空值与NULL的区别:我们先来理解mysql中空值与NULL的区别是什么吧,一些刚刚接触MySQL的孩子,经常会错误的认为NULL与空字符串’ ’是相同的,这看似是一件不重要的事情,但是在MySQL中,这两者是完全不同的,NULL是指没有值,而”则表示值是存在的,只不过是个空值. 这就相当于厂子给职...

mysql一对多关联查询的时候筛选条件

mysql一对多关联查询的时候筛选条件
对于关联查询本人在开发应用中使用得很少,因为我处理数据量都非常的大所以关联对我来说可能导致数据库访问缓存,今天看到一朋友写了一篇关于mysql一对多关联查询的时候筛选条件看了有点意思于是与大家分享. mysql实现users 表和 logoin_log表是一对多,现在是把user的信息找出来关联上一些 logoin_log表的数据,因为a表是多的一方,要多他的数据进行一些条件匹配,这个sql目的是查出每个用户的最新的log记录. 有...