MYSQL&SQL
fwkjdaghappy1
这个作者很懒,什么都没留下…
展开
-
mysql对char和varchar左右空格的处理
都知道mysql中char和varchar的区别:1、char是固定长度的,如果长度不足,采用右补空格的方式来填充字符串至规定的长度,而varchar不是,有多长存多长。2、对于检索效率来说,char的效率要高于varchar的好,问题来了既然char是右补空格的,那么我如果存入的字符串右边有个空格,是如何处理的呢?简单测试一下:首先建一个表,有两个字段,分别是char和v原创 2012-06-04 00:33:43 · 13630 阅读 · 2 评论 -
Mysql中表结构以及数据的分布
mysql data 里面的文件有一下几种类型:*.frm:描述表结构的文件*.opt:数据库的配置信息,如语言等myisam 引擎*.MYD:表数据文件*.MYI:表数据文件索引的索引树INNODB引擎*.ibd:数据文件以及索引原创 2012-06-26 20:59:30 · 752 阅读 · 0 评论 -
SQL_CALC_FOUND_ROWS 与 FOUND_ROWS()
FOUND_ROWS() 函数,可以在调用包含LIMIT的SQL查询中,获得总共符合条件的记录数。FOUND_ROWS() 函数的具体用法:它需要在前面的SELECT语句中打开SQL_CALC_FOUND_ROWS选项。如:mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name WHERE id > 100 LIMIT 10;转载 2013-05-02 17:43:47 · 1637 阅读 · 0 评论 -
mysql查询的存取类型
我们用explain语句来查看查询语句的索引使用情况的时候,有一列“type”,现在整理一下type的所有类型,备忘按照从最优到最差的顺序进行排序system:系统表,并且是常量表const:常量表eq_ref:unique/primary类型的索引,并且使用了“=”进行存取ref:索引使用“=”进行存取(表示可能有多条符合存取的数据)ref_not_null:索引使用“=原创 2013-08-21 22:59:30 · 634 阅读 · 0 评论 -
Mysql中校对集utf8_unicode_ci与utf8_general_ci的区别
一直对utf8_unicode_ci与utf8_general_ci这2个校对集很迷惑,今天查了手册有了点眉目。不过对中文字符集来说采用utf8_unicode_ci与utf8_general_ci时有何区别还是不清楚?下面摘录一下Mysql 5.1中文手册中关于utf8_unicode_ci与utf8_general_ci的说明: 当前,utf8_unicode_ci校对规则转载 2013-07-09 11:36:22 · 1049 阅读 · 0 评论 -
mysql之zerofill
相信很多用了mysql的人都很迷茫1.对于整形的字段用了unsigned有什么区别?2.tinyint(1) 和 tinyint(7) 究竟有什么区别?下面来简单分析一下:1、对于每种整形来说,都分无符号(unsigned)和有符号(signed)两种类型,如果需声明无符号类型的话就需要在类型前加上unsigned。无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的原创 2013-05-13 22:29:18 · 1635 阅读 · 0 评论 -
MySQL之Covering Index
在网上随便搜搜,就能找到大把的关于MySQL优化的文章,不过里面很多都不准确,说个常见的:SELECT a FROM ... WHERE b = ...一般来说,很多文章会告诫你类似这样的查询,不要在“a”字段上建立索引,而应该在“b”上建立索引。这样做确实不错,但是很多时候这并不是最佳结果。为什么这样说?让我们先来分析一下查询的处理过程:在执行查询时,系统会查询“b”索引进行定位转载 2013-05-02 17:51:44 · 607 阅读 · 0 评论 -
MySQL性能优化的最佳21条经验
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。1. 为转载 2012-06-30 00:27:51 · 6081 阅读 · 0 评论 -
mysql探究之null与not null
相信很多用了mysql很久的人,对这两个字段属性的概念还不是很清楚,一般会有以下疑问:1、我字段类型是not null,为什么我可以插入空值2、为毛not null的效率比null高3、判断字段不为空的时候,到底要 select * from table where column 带着上面几个疑问,我们来深入研究一下null 和 not null 到底有什么不一样。首原创 2012-06-30 00:10:34 · 55908 阅读 · 10 评论 -
mysql的字符串函数
对于针对字符串位置的操作,第一个位置被标记为1。 ASCII(str)返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL。mysql> select ASCII('2'); -> 50mysql> select ASCII(2); -> 50mysql> select ASCII('dx'转载 2012-06-26 17:00:49 · 464 阅读 · 0 评论 -
由浅入深探究mysql索引结构原理、性能分析与优化
摘要:第一部分:基础知识第二部分:MYISAM和INNODB索引结构1、 简单介绍B-tree B+ tree树2、 MyisAM索引结构3、 Annode索引结构4、 MyisAM索引与InnoDB索引相比较第三部分:MYSQL优化1、表数据类型选择2、sql语句优化(1) 最左前缀原则(1.1) 能正确的利用索引(1.2转载 2012-06-26 17:11:54 · 1548 阅读 · 0 评论 -
mysql的auto_increment详解
auto_increment的基本特性MySQL的中AUTO_INCREMENT类型的属性用于为一个表中记录自动生成ID功能,可在一定程度上代替Oracle,PostgreSQL等数据库中的sequence。在数据库应用,我们经常要用到唯一编号,以标识记录。在MySQL中可通过数据列的AUTO_INCREMENT属性来自动生成。可在建表时可用“AUTO_INCREMENT=n”原创 2012-06-14 15:45:44 · 61032 阅读 · 1 评论 -
软件版本Beta,RC,Demo,Build等是什么意思呢
Alpha:是内部测试版,一般不向外部发布,会有很多Bug.一般只有测试人员使用。Beta:也是测试版,这个阶段的版本会一直加入新的功能。在Alpha版之后推出。RC:(Release Candidate)以前好像也叫GA(gamma)版顾名思义么 ! 用在软件上就是候选版本。系统平台上就是发行候选版本。RC版不会再加入新的功能了,主要着重于除错。转载 2012-06-15 00:13:43 · 1197 阅读 · 0 评论 -
mysql table is read only 解决
/usr/local/opt/mysql/bin/mysqladmin -uroot -p flush-tables原创 2015-02-02 06:44:54 · 704 阅读 · 0 评论