mysql 常用查询

1.unix时间戳的使用

unix_timesamp、from_unixtime 函数 和 datatime_format函数。

// 从datetime 类型取做整形 unixtime时间戳;

select unix_timestamp( datetime ) from examplestables;

// 从整形转换成datetime类型,时间格式

select from_unixtime( datetime ) from exampletables;

// 对unix 时间戳自定义时间段分组统计 distinct 不重复 dateformat 时间串自定义格式输出

select count(distinct(roleid)), dateformat( from_unixtime(datetime),"%Y-%m-%d"  ) days from tmptable  group by days;

2. sleep连接超时时间 --避免过多的sleep连接占用资源

set global wait_timeout=305;

3.创建索引 表不加主键,不加索引的查询非常慢
create index idx_datarow on exampletables(datarow);

4.myisam 引擎 和 innodb引擎

myisam在 update insert 使用表级锁

innodb 在update ,insert时使用 的是按照索引和键值的行级锁,并发性更高

innodb 在创建的表行属性 为fixed的时候,blob类型字段过长,过多会报错。

Row size too large. The maximum row size for the used table type, not counting BLOBs, is 1982. You have to change some columns to TEXT or BLOBs。

需要改成dynamic。动态长度的行数据。

5.查询某列数据重复的数据值 exampletables  表中,exrow行重复的列

select * from exampletables where exrow in ( select exrow from exampletables group by exrow  having count(exrow) > 1 );

6.修改表的引擎,修改表的列类型

alter table exampletable ENGINE=InnoDB;

alter table exampletable modify column exrowname varchar(64);

7.查看正在执行的sql命令,show processlist

select * from information_schema.processlist where command <> ‘Sleep‘;

8.查看慢查询日志,有助于捕捉耗时查询,异常查询

show variables like ‘slow‘;

log-slow-queries=/data/mysqldata/slowquery。log
long_query_time=2

9.GTID(Global Transaction ID)是对于一个已提交事务的编号,并且是一个全局唯一的编号。
GTID实际上是由UUID+TID组成的。其中UUID是一个MySQL实例的唯一标识。TID代表了该实例上已经提交的事务数量,并且随着事务提交单调递增。下面是一个GTID的具体形式

3E11FA47-71CA-11E1-9E33-C80AA9429562:23

9.mysql 备份--set-gtid-purged=OFF  是忽略 变量中记录的是本机上已经执行过,但是已经被purge binary logs to命令清理的gtid_set

mysqldump -uexuser -p -h127.0.0.1 --databases --no-data dbname   --set-gtid-purged=OFF  >/data/bk.sql

附上备份和恢复脚本:命令行执行

mysqldump -uroot -p -h 11.111.111.111 -P3306 --default-character-set=utf8 --set-gtid-purged=OFF --password --databases test > /home/sqlbackup

mysql -h11.111.111.111 -uroot -P3306 -p --default-character-set=utf8  < /home/sqlbackup

注意,上述脚本中,备份的部分要加入--set-gtid-purged=OFF参数,防止在备份出的sql脚本中生成 SET @@global.gtid_purged 语句:

Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don‘t want to restore GTIDs, pass --set-gtid-purged=OFF.

官方文档关于set-gtid-purged是这样写的:

This option enables control over global transaction ID (GTID) information written to the dump file, by indicating whether to add a SET @@global.gtid_purged statement to the output.

10.查询目前的 执行非sleep命令

select * from information_schema.processlist where command <>‘Sleep‘;

时间: 2024-10-06 16:32:25

mysql 常用查询的相关文章

23个MySQL常用查询语句

一查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,=,<,<>,!=,!>,!<,=>,=< 二查询字符串 SELECT * FROM tb_stu  WHERE sname  =  '小刘' SELECT * FROM tb_stu  WHERE sname like '刘%' SELECT * FROM tb_stu  WHERE sname like '%程序员' SELECT * F

MySQL常用查询操作

下面是常用mysql数据库查询总结: 显示一个数据表的所有数据. mysql> SELECT * FROM [table name]; 返回指定数据表的各列信息. mysql> show columns from [table name]; 使用值"blog"过滤显示选定的某些行. mysql> SELECT * FROM [table name] WHERE user = "blog"; 显示所有包含name为"Bob"和ph

mysql 常用查询(一)

-- 1:case when --SELECT     CASE     WHEN (admin_id IS NULL) THEN '无创建人'    WHEN (admin_id = 0) THEN '管理员'    ELSE admin_id     END AS admin_idFROM hsb_investor-- 2:if else 是不能在select 语句中使用的.只能用来控制sql程序的流程.像你这种情况只能用case的.或者采用以下的方式SELECT IF(admin_id=0

MySQL常用查询语句汇总(不定时更新.......)

在这篇文章中我会通过一些例子来介绍日常编程中常用的SQL语句 目录: ## 1.数据库的建立 ## 2.常用查询 ## 1.数据库的建立 实例将ER图的形式给出: 由此转换的4个关系模式:                    注:下划线为直线为主键,下划线为红色虚线为外键 由此可以建立如下数据库: C: S: SC: T: 数据库的具体建立脚本请查看  我的github ## 2.常用查询 查询年龄最小的四个人(按年龄从小到大排序,如果年龄相同,按姓名顺序排序) SELECT * FROM s

MySQL常用查询语句(23个)

一查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,=,<,<>,!=,!>,!<,=>,=< 二查询字符串 SELECT * FROM tb_stu  WHERE sname  =  '小刘' SELECT * FROM tb_stu  WHERE sname like '刘%' SELECT * FROM tb_stu  WHERE sname like '%程序员' SELECT * F

mysql常用查询语句

基本语句 1.mysql   -u   root   -p                            数据库连接 2.create   databases  数据库名             创建数据库 3.drop   database   数据库名                 删除数据库 查询语句 4.SELECT * FROM 表名称                    查询表中所有数据 5.SELECT idcard,name FROM student        

收藏 23个MySQL常用查询语句

一查询数值型数据: SELECT * FROM tb_name WHERE sum > 100; 查询谓词:>,=,<,<>,!=,!>,!<,>=,<= 二查询字符串 SELECT * FROM tb_stu  WHERE sname  =  '小刘' SELECT * FROM tb_stu  WHERE sname like '刘%' SELECT * FROM tb_stu  WHERE sname like '%程序员' SELECT * F

MySQL常用查询

数据库 1. 查询所有数据的大小: DATA_LENGTH: 数据大小 INDEX_LENGTH: 索引大小 SELECT concat(round(sum(DATA_LENGTH+INDEX_LENGTH)/1024/1024,2),'MB') as data FROM information_schema.TABLES\G 2. 查看指定数据库的大小,比如查看数据库zabbix的大小: SELECT concat(round(sum(DATA_LENGTH+INDEX_LENGTH)/102

mysql常用查询命令

1.mysql登录命令 #mysql -h 192.168.1.1 -u root -p admin123    //(root默认密码为空),远程登录连接命令 #mysql -u root -p admin123   //本地登录命令 2.mysql退出命令 >exit 3.