count有关
摘要:1、count有两个作用:统计某个字段有值的记录数;统计结果集的记录数。2、count括号内的表达式不为null,就是统计结果集的记录数。也就是说,count(1),count(*),count(100),count('aa') 都是等价的,对于说法,count(1) 是第一个字段,coun...
阅读全文
posted @
2015-08-23 10:39
Andy Niu
阅读(449)
推荐(0) 编辑
查询缓存
摘要:1、从Mysql4.0开始,支持查询缓存,把查询结果记录下来,遇到同样的查询直接返回,提高效率。2、query_cache_type 查询缓存是否开启 select @@query_cache_type; set @@query_cache_type=on;3、have_query_ca...
阅读全文
posted @
2015-08-23 10:37
Andy Niu
阅读(693)
推荐(0) 编辑
MyISAM与InnoDB的索引实现
摘要:1、MyISAM 使用B+Tree 作为索引结构,叶子节点的data存放指针,也就是记录的地址。对于主键索引和辅助索引都是一样的。2、InnoDB 也使用B+Tree作为索引结构,也别需要注意的是,对于主键索引,InnoDB 使用聚集索引,InnoDB的数据文件本身就是就是索引文件。而MyISAM,...
阅读全文
posted @
2015-07-12 19:37
Andy Niu
阅读(1142)
推荐(0) 编辑
ERROR 1201 (HY000) Could not initialize master info structure
摘要:1、错误原因:Slave线程启动出现问题。2、解决办法一:stop slave; reset slave; start slave; show slave status\G3、如果解决方法一,还是失败,说明中继日志出现问题,删除中继日志,再次执行start slave
阅读全文
posted @
2015-07-05 11:13
Andy Niu
阅读(822)
推荐(0) 编辑
mysql 锁的粒度
摘要:1、锁的类型分为读锁和写锁,这个很好区分。可以这样认为:如果有增删改,就是写锁。如果是查询,就是读锁。2、锁的粒度也就是锁的范围,分为行锁和表锁。锁的范围和多个因素有关,包括事务隔离级别、是否使用索引。测试 read-committed,结果是行锁事务A:mysql> select @@sessio...
阅读全文
posted @
2015-07-05 10:32
Andy Niu
阅读(3659)
推荐(0) 编辑
mysql 占用的内存大小
摘要:1、mysql执行查询计划,key_len表示索引使用的字节数,这个字节数和三个条件有关。mysql> create table t1(v1 char(10));Query OK, 0 rows affectedmysql> create index index_v1 on t1(v1);Query...
阅读全文
posted @
2015-06-28 15:54
Andy Niu
阅读(10091)
推荐(0) 编辑
mysql的优化
摘要:1、编程分为两种:命令式编程:Imperative Programming,程序员需要告诉程序应该怎么做,也就是 How To Do,传统的高级语言都是命令式编程,比如C#,Java,命令式编程也称为过程化编程,工作在第一线的程序员要做这类工作。声明式编程:Declarative Programmi...
阅读全文
posted @
2015-06-28 15:53
Andy Niu
阅读(201)
推荐(0) 编辑
mysql 执行计划的理解
摘要:1、执行计划就是在sql语句之前加上explain,使用desc 也可以。2、desc有两个选项extended和partitions,desc extended 将原sql语句进行优化,通过show warnings 可以看到优化后的sql语句。 desc partitions 可以查看使用分...
阅读全文
posted @
2015-06-28 15:49
Andy Niu
阅读(349)
推荐(0) 编辑
mysql 性能问题的解决
摘要:场景:模拟一天的数据,每个10秒,遍历1000个设备,每个设备模拟一个实时数据,总的数据量为:24*60*60/10*1000 = 864万条记录。----------------------------------------------------------------------------...
阅读全文
posted @
2015-06-27 20:50
Andy Niu
阅读(231)
推荐(0) 编辑
mysql 性能问题
摘要:1、场景,模拟一天的数据,每个10秒,遍历1000个设备,每个设备模拟一个实时数据,总的数据量为:24*60*60/10*1000 = 864万条记录。2、采用策略,对时间分段,拼接sql语句查询,对于一个设备,查询一天每个小时的平均值,时间开销186.757秒。3、现在考虑简单的情况,求一个小时的...
阅读全文
posted @
2015-06-27 20:49
Andy Niu
阅读(238)
推荐(0) 编辑
mysql 查询开销 sending data
摘要:1、执行一个查询,发现时间开销都在sending data,为什么?2、sending data容易误导,让人以为只是发送数据给客户端,实际上sending data包含两个过程:读取数据并处理,发送给客户端,而时间开销都在读取数据并处理的过程中。
阅读全文
posted @
2015-06-27 20:48
Andy Niu
阅读(433)
推荐(0) 编辑
mysql 索引的原理
摘要:1、考虑下面的情况,mysql> desc student;+----------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-----...
阅读全文
posted @
2015-06-27 20:46
Andy Niu
阅读(1100)
推荐(0) 编辑
mysql 大数据量的处理
摘要:insert 1、过滤一段时间内重复的数据2、数据缓存起来,批量写入select1、使用分区表2、主主复制,连接不同的mysql3、建立索引4、定时求平均值,写入一个新的表中
阅读全文
posted @
2015-06-27 20:45
Andy Niu
阅读(988)
推荐(0) 编辑
mysql 理解 int(11)
摘要:1、这里的int(11) 与int的大小和存储字节,没有一毛钱关系,int的存储字节是4个字节,最大值为 65536*65536 = 40多亿,对于有符号的int,是20多亿。2、那么这里的(11) 表示什么意思? 考虑下面的需求,ID字段显示宽度为2,宽度不够的补充0。3、测试如下:mysql> ...
阅读全文
posted @
2015-06-27 20:44
Andy Niu
阅读(1453)
推荐(0) 编辑
mysql 特殊字符
摘要:1、倒引号,比如表中有一个字段为desc,在mysql中desc是关键字,如何表明desc是字段呢? 有两种办法:desc使用倒引号引起来,或者在desc前面加上表名,如下:mysql> select desc from student;1064 - You have an error in y...
阅读全文
posted @
2015-06-27 20:42
Andy Niu
阅读(4988)
推荐(0) 编辑
mysql 聚集函数需要注意的问题
摘要:1、当没有记录的时候,使用聚集函数,会导致出现一条记录,记录的取值都是NULL,如下:mysql> select name from student where name='David';Empty setmysql> select name,avg(age) from student where ...
阅读全文
posted @
2015-06-27 20:41
Andy Niu
阅读(380)
推荐(0) 编辑
mysql 查询开销
摘要:1、select @@profiling;2、set @@session.profiling=on;3、show profiles;4、show profile for query 2;
阅读全文
posted @
2015-06-27 20:28
Andy Niu
阅读(262)
推荐(0) 编辑
mysql 循环控制
摘要:1、使用whileDROP PROCEDURE IF EXISTS `addstudent`;DELIMITER ;;CREATE PROCEDURE `addstudent`(iNum int)BEGIN declare vI int default 0; start transaction; ...
阅读全文
posted @
2015-06-27 20:27
Andy Niu
阅读(481)
推荐(0) 编辑
mysql 编码测试
摘要:insert into t1(v1) values('cn中国'); select * from t1; 1、输入gbk,交互latin1,数据库latin1 insert,客户端把gbk的输入当成latin1来解释,传给服务,服务不需要转码,把gbk当成latin1存入数据库,显示乱码。 ...
阅读全文
posted @
2015-06-12 22:18
Andy Niu
阅读(274)
推荐(0) 编辑
mysql delimiter
摘要:默认情况下,mysql遇到分号; 就认为是一个命令的终止符, 就会执行命令。而有些时候,我们不希望这样,比如存储过程中包含多个语句,这些语句以分号分割,我们希望这些语句作为一个命令,一起执行,怎么解决这个问题?使用delimiter,告诉mysql解释器,换一个标识符,作为执行命令的终止符。 如下:...
阅读全文
posted @
2015-06-12 22:15
Andy Niu
阅读(292)
推荐(0) 编辑