清泉逐流

做着努力,等待幸福到来
» 日志

MySQL探究之null与not null

时间 : 2015-05-04 11:56 标签 : MySQL  

相信很多用了mysql很久的人,对这两个字段属性的概念还不是很清楚,一般会有以下疑问:

1、我字段类型是not null,为什么我可以插入空值

2、为毛not null的效率比null高

3、判断字段不为空的时候,到底要  select * from table where column <> '' 还是要用 select * from table where column is not null 呢。

带着上面几个疑问,我们来

查看全文 »

MySQL中Memory表出现is full

时间 : 2014-08-18 21:19 标签 : MySQL  

今天例行检查,发现一个奇怪的问题,出现错误如下:

Error:The table 'pre_mytable' is full

分析很可能是硬盘满了或者内存不够出现的情况,硬盘有足够的空间,肯定就是出现在memory上了。

查看全文 »

MySQL的Collation和Character set问题

时间 : 2014-08-02 23:25 标签 : MySQL  

今天执行一条语句遇到了:

Illegal mix of collations (gbk_chinese_ci, IMPLICIT) and(utf8_general_ci, COERCIBLE) for operation '='

SELECT * FROM (`table`) where `title`='<中文>' LIMIT1

查看全文 »

mysql出现“Incorrect key file for table”

时间 : 2014-06-26 17:36 标签 : MySQL  

数据表操作failed,修复SQL语句:

REPARE TABLE <TABLENAME>;

REPAIR TABLE

查看全文 »

关于Mysql的一些授权问题

时间 : 2013-03-13 22:19 标签 : MySQL  

  大家都知道,Mysql是一个遵循GPL协议的数据库系统,Mysql遵守的不只是GPL协议,而是双授权模式即你在遵守GPL协议的开源项目使用mysql,需要遵守GPL协议方能使用。如果你在非开源项目使用(即软件不打算开放源代码),且该软件用来销售,则需要向mysql支付相应license费用。

  

  意思就是说:如果只是自用无需购买许可证,但是如果商业化就要买许可证了,而且价格还有点贵。

  

  有人说如果让客户自己去装mysql就可以不用买许可证。但是mysql许可证政策是这样说的:“

  

  如果你在一个客户机器上安装 MySQL 并为此服务收费(直接或间接地),那么你必须购买一个 MySQL 许可证。

  

  如果你销售一个应用,而 MySQL 不是完全需要但是能被使用,可能要出示一个许可证,这取决于怎样建立 MySQL。假如你的产品既不需要 MySQL 也不在你的产品分

查看全文 »

my-small.ini、my-medium.ini、my-large.ini、my-huge.ini使用哪个

时间 : 2012-08-29 11:09 标签 : MySQL  

  安装完mysql之后或者是下载的免安装版解压之后,默认是没有my.ini文件的.

  但是,有几个类似的文件,如[code]my-small.ini、my-medium.ini、my-large.ini、my-huge.ini,[/code]下面我说一下这几个文件是干嘛的。

  这几个文件是mysql针对不同的应用推荐的不同的配置信息;但这些配置只有放到my.ini中才会被应用。

  其中:

  1、my-small.ini是为了小型数据库而设计的。不应该把这个模型用于含有一些常用项目的数据库。

  2、my-medium.ini是为中等规模的数据库而设计的。如果你正在企业中使用RHEL,可能会比这个操作系统的最小RAM需求(256MB)明显多得多的物理内存。由此可见,如果有那么多RAM内存可以使用,自然可以在同一台机器上运行其它服务。

  3、my-large.ini是为专用于一个SQL数据库的计算机而设计的。由于它可以为该数据库使用多达512MB的内存,所以在这种类型的系统上将需要至少1GB的

查看全文 »

mysql指定的某个字段中去除重复项

时间 : 2012-08-17 19:53 标签 : MySQL  

query result(14 records) id uid gid 1 11 502 2 107 502 3 100 503 4 110 501 5 112 501

查看全文 »

Mysql 5.1忘记root密码,重置root密码

时间 : 2012-06-10 10:53 标签 : MySQL  

  网上一搜索,一大堆的资料,但是到底哪个是有用的,需要验证研究了。

  首先我们要清楚重置密码的一个思路:

  1.使用不需要验证的启动方式启动mysql。

  2.修改用户表中的数据,从而达到修改密码的效果。

  于是我们先停止了mysql服务。

  由于是在windows 2003下,在服务中停止了mysql服务,服务名为mysql51,当然也可以通过命令来停止。

  net stop mysql51.

  接下来要做的就是以以一种不需要验证的方式启动mysql。mysqld.exe为mysql进程,我们需要进入到mysql安装目录的/bin/目录下,启动mysqld,和以往不同的是,我们需要使用命令来启动

  >mysqld-nt --skip-grant-tables

 

查看全文 »

Mysql中使用Left join连接多个表语法

时间 : 2011-12-30 11:26 标签 : MySQL  

  select

  a.a as a,

  b.b as b,

  c.c as c

  from a

  left join b on a.id=b.id

  left join c on b.id=c.id

  where 条件

  order by xx

  limit 0,10

  老是记不住这玩意儿的几个细节,特此笔记。

查看全文 »

使用mysql_fecth_array 结果既包括数字索引又包括字符索引

时间 : 2011-12-14 21:14 标签 : MySQL  

  使用mysql_fecth_array 结果既包括数字索引又包括字符索引

  Array ( [0] => Array ( [0] => 1 [cid] => 1 [1] => 12 [id] => 12 [2] => bucuo [comment] => bucuo [3] => 23 [uid] => 23 [4] => 2147483647 [time] => 2038-01-19 ) [1] => Array ( [0] => 2 [cid] => 2 [1] => 12 [id] => 12 [2] => bucuo [comment] => bucuo [3] => 23 [uid] => 23 [4] => 2147483647 [time] => 2038-01-19 ) )  比如上面这个数组  按道理 只需要输出 单纯的数字索引或者 字符串索引就可以,但是它包含两者。  

  出现这种情况的原因是 mysql_fecth_array 函数有两个参数  第一个是结果集,第二个是你要取得哪种显示的方式  如果不写

查看全文 »
» 日志标签