mysql 求时间段平均值
摘要:考虑下面的需求,在一段时间内,间隔一段时间,取一个平均值,把所有的平均值取出来,怎么办?思路:在存储过程中,拼接sql语句。根据起始时间和结束时间,while循环每次加一段时间。DROP PROCEDURE IF EXISTS `get_avg`;DELIMITER ;;CREATE DEFINER...
阅读全文
posted @
2015-06-12 22:13
Andy Niu
阅读(9592)
推荐(0) 编辑
mysql Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
摘要:错误原因:/var/lib/mysql目录中socket文件不存在。连接mysql服务器有两种方式:tcp连接,通过socket文件连接。通过socket文件,启动mysql服务,mysql服务会自动生成一个sock文件,生成的sock文件默认放在 --datadir=/var/lib/mysql,...
阅读全文
posted @
2015-06-12 22:12
Andy Niu
阅读(6778)
推荐(0) 编辑
mysql字符集
摘要:gb2312 简体中文已经常用符号,双字节编码gbk 中日韩字符,是gb2312的超集,也是双字节编码utf8 多字节编码。包含中日韩法俄字符, 特别注意,还包含英文字符,对于英文字符,使用一个字节,其他字符使用三个字节。
阅读全文
posted @
2015-06-12 22:11
Andy Niu
阅读(177)
推荐(0) 编辑
mysql 内连接 左连接 右连接 外连接
摘要:mysql> desc student;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------...
阅读全文
posted @
2015-06-12 22:07
Andy Niu
阅读(10498)
推荐(0) 编辑
mysql 聚集函数和分组
摘要:1、sc表的内容如下:mysql> select * from sc order by sid asc;+----+-------+-----+-------+| ID | SID | CID | SCORE |+----+-------+-----+-------+| 1 | 10001 |...
阅读全文
posted @
2015-06-12 22:06
Andy Niu
阅读(570)
推荐(0) 编辑
mysql 大数据量求平均值
摘要:需求是:对于一个设备,求一天内每个小时的平均值,一个月内每天的平均值,更通用的需求是,从起始时间到结束时间,每隔一段时间,求一个平均值。目前的解决策略是:在存储过程中进行处理,从起始时间到结束时间,切割成段,求出每一段的平均值,合并起来。存在问题:数据量很大的时候,会存在严重的性能问题。比如:一个月...
阅读全文
posted @
2015-06-12 22:05
Andy Niu
阅读(5385)
推荐(0) 编辑
mysql 查询执行的流程
摘要:1、客户端发送一个请求给服务器。2、服务器先检查查询缓存,命中了缓存,直接返回缓存中的数据,否则进入下一个阶段。3、服务器进行sql解析,预处理,再由优化器生成对应的执行计划。4、mysql根据执行计划,调用存储引擎的API来执行查询5、将结果返回给客户端。
阅读全文
posted @
2015-05-31 16:31
Andy Niu
阅读(357)
推荐(0) 编辑
mysql 逻辑架构
摘要:1、mysql是基于网络的客户端/服务器架构,服务器上层是连接线程,解析器,查询缓存,下层是存储引擎。2、每个客户端连接,服务器都有一个对应的线程,这个线程只为这个连接查询服务,高版本的mysql支持线程池,使用少量的线程服务大量的连接。3、服务器收到请求,会解析查询,建立解析树,然后对其优化,包括...
阅读全文
posted @
2015-05-31 16:07
Andy Niu
阅读(274)
推荐(0) 编辑
mysql 并发控制
摘要:1、多个线程同时修改数据,存在数据不一致的情况,也就是并发控制的问题。2、mysql提供读锁和写锁,读锁之上可以再加读锁,不能加写锁,而写锁之上不能加任何锁。也就是说,读锁是共享的,写锁是排他的。3、锁粒度,为了更好的并发控制,锁的粒度应该尽可能小,也就是只锁定修改的数据。但是,锁本身也有一定的开销...
阅读全文
posted @
2015-05-31 15:54
Andy Niu
阅读(10425)
推荐(0) 编辑
mysql 事务隔离级别
摘要:read-uncommitted(未提交读)测试流程:1、A设置read-uncommitted, start transaction2、B执行start transaction,修改一条记录,3、A查询记录,得到了以为正确的记录4、B回滚。问题:A读到了B没有提交的记录,也就是脏读。read-co...
阅读全文
posted @
2015-05-30 18:06
Andy Niu
阅读(1468)
推荐(0) 编辑
使用otl,报错:mysql Commands out of sync; you can't run this command now
摘要:1、代码如下:void TestCache(otl_connect& otlConn){ try { char sql[1024] = {0}; sprintf(sql,"call test1(1)"); otl_stream stream(10...
阅读全文
posted @
2015-05-30 17:52
Andy Niu
阅读(8206)
推荐(0) 编辑
mysql 存储过程中limit
摘要:1、mysql的高版本(5.5),存储过程中的limit可以使用变量,如下:select * from student limit iStart,iNum;2、mysql的低版本(5.1),存储过程中的limit不能使用变量,编译报错,如下:You have an error in your SQL...
阅读全文
posted @
2015-05-30 17:36
Andy Niu
阅读(4446)
推荐(0) 编辑
mysql 变量
摘要:用户变量1、用户变量,用户变量和数据库连接有关,连接后声明变量,连接断开后,自动消失。2、用户变量以@开头,select一个没有赋值的用户变量,返回NULL,也就是没有值,注意取值为NULL与取值为0或者""的区别。mysql> select @var;+------+| @var|+------+...
阅读全文
posted @
2015-05-27 00:04
Andy Niu
阅读(490)
推荐(0) 编辑
mysql 权限控制
摘要:1、mysql的权限是,从某处来的用户对某对象的权限。2、mysql的权限采用白名单策略,指定用户能做什么,没有指定的都不能做。3、权限校验分成两个步骤: a、能不能连接,检查从哪里来,用户名和密码,常见错误 ERROR 1045 (28000): Access denied for user ....
阅读全文
posted @
2015-05-22 00:49
Andy Niu
阅读(3969)
推荐(0) 编辑
mysql 选择性高
摘要:选择性高是指能够过滤掉更多不需要的记录。举例来说,在一个公司里,使用性别只能过滤掉一半的人,而使用姓名一般可以过滤掉99%以上的人,因为会有重名情况,而使用员工号,选出一个,其他的全部过滤掉。也就是说,员工号的选择性最高。
阅读全文
posted @
2015-05-17 20:04
Andy Niu
阅读(934)
推荐(0) 编辑
mysql 事件调度器
摘要:1、mysql事件调度器,也就是计划任务,计划做某事,有两种方式:2、在某个时间点做某事,AT TIMESTAMP [+ INTERVAL INTERVAL] 某个时间点加上偏移。3、定时地做某事,也就是在一个时间段内,设置间隔,周期性做某事,EVERY INTERVAL [STARTS TIMES...
阅读全文
posted @
2015-05-17 19:57
Andy Niu
阅读(275)
推荐(0) 编辑
mysql删除重复记录,保存Id最小的一条
摘要:方法1:1、创建一个临时表,选取需要的数据。2、清空原表。3、临时表数据导入到原表。4、删除临时表。mysql> select * from student;+----+------+| ID | NAME |+----+------+| 11 | aa || 12 | aa || 13 |...
阅读全文
posted @
2015-05-01 13:38
Andy Niu
阅读(46450)
推荐(7) 编辑
mysql 倒引号
摘要:1、在mysql中,保留字不能作为表名,字段名等用处,如下:mysql> alter table student add column desc varchar(16) after name;1064 - You have an error in your SQL syntax; check the...
阅读全文
posted @
2015-05-01 11:46
Andy Niu
阅读(459)
推荐(0) 编辑
数据库模式
摘要:1、我们知道数据库和表是描述和存储用户数据的,那么问题来了,对于数据库和表,谁来描述和存储它们呢?2、这就是模式做的事情。mysql安装之后,有一个默认的数据库,information_schema,这个里面保存了数据库和表的内容,需要注意的是,information_schema还包含了自身的内容...
阅读全文
posted @
2015-05-01 09:34
Andy Niu
阅读(592)
推荐(0) 编辑
mysql 有关的文件
摘要:1、在linux上安装好mysql之后,存在很多mysql有关的文件。2、/etc/rc.d/init.d/mysql 是mysql服务的启动脚本,是对mysqld_safe的封装,mysqld_safe是一个脚本,是对可执行文件mysqld的封装3、/usr/bin/mysql 是mysql客户端...
阅读全文
posted @
2015-04-26 17:32
Andy Niu
阅读(254)
推荐(0) 编辑