
mysql
geekmichael
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
mysql varchar char 区别
1:varchar() 是变长存储,括号内为最大存储字节数,当低于255的时候,vachar需要用一个字节来存储长度,如果大于255,则需要两个字节来存储。char则是定义多少就用多少字节。当存入的数据不足时,会用空格来补齐。2:varchar对空间是节省的,但char的效率更高一些。3:现有磁盘如此廉价情况下,存储一些较少字节的数据时用char更合适一些,如下图,当存储四个字节的时候不同原创 2015-11-11 10:38:05 · 367 阅读 · 0 评论 -
mysql 规范
一、字段库名、表名、字段名必须使用小写字母,“_”分割//mysql默认是大小写敏感的如果不加以规定,可能造成aBC abc Abc这种形式的表不好管理库名、表名、字段名必须不超过12个字符//方便辨识,减少传输量库名、表名、字段名见名知意,建议使用名词而不是动词。//库表是客观存在的东西,因此最好用名词来描述建议使用InnoDB存储引擎。//最原创 2015-11-12 14:25:06 · 395 阅读 · 0 评论 -
mysql 分页的高效实现
一般我们分页采用如下查询方式:表结构:标题 新闻内容 时间如果我们查询最新的10条新闻我们会如此查询:select * from table order by time desc limit 0,9我们可以采用如下的写法来提高效率:select * from table where time select* from table inner jo原创 2015-11-12 10:58:16 · 298 阅读 · 0 评论 -
mysql using()用法
mysql中using的用法为:using()用于两张表的join查询,要求using()指定的列在两个表中均存在,并使用之用于join的条件。 示例: select a.*, b.* from a left join b using(colA); 等同于: select a.*, b.* from a left join b on a.colA = b.colA;转载 2015-11-12 10:18:02 · 618 阅读 · 0 评论 -
order by rand() 问题
这个语句会造成严重的慢查询,因为mysql会将磁盘里的数据读到内存中进行排序,进行随机取值,因此,最好不要使用这个语句,最好在业务逻辑中声称一个随机的数字然后直接到sql里查询。原创 2015-11-11 11:36:02 · 753 阅读 · 0 评论 -
mysql ip存储的问题
最好用 int unsigned 来存储IP:ip 转换成数字 inet_aton(‘209.207.224.40’) 结果就是下面的那串数字。数字转换成ip inet_ntoa(3520061480)结果就是上面的那个ip原创 2015-11-11 11:24:31 · 418 阅读 · 0 评论 -
ON DUPLICATE KEY UPDATE 问题
ON DUPLICATE KEY UPDATE只是MySQL的特有语法,并不是SQL标准语法! 这个语法和适合用在需要 判断记录是否存在,不存在则插入存在则更新的场景.比如我们要实现这样一个功能,在数据库中记录一个游戏玩家捡到的金币的数量:表结构为:userid count两个字段,每捡到一个金币count字段就加一,如果这个userid第一次捡到就插入一条记录如果按照老做法原创 2015-11-11 11:56:42 · 574 阅读 · 0 评论 -
存储小数的时候尽量用定点数来表示
定点数: decimal 或 numeric单精度浮点数的有效数字二进制是24位,按十进制来说,是8位;双精度浮点数的有效数字二进制是53位,按十进制来说,是16 位 一个实数的有效数字超过8位,用单精度浮点数来表示的话,就会产生误差!同样,如果一个实数的有效数字超过16位,用双精度浮点数来表示,也会产生误差b) IEEE754标准的计算机浮点数,在内部是用原创 2015-11-11 11:21:32 · 761 阅读 · 0 评论 -
mysql 库,表,字段名定义问题
mysql中有lower_case_table_names这个配置参数,默认是大小写敏感的。因此,名字命名尽量都用小写火者都用大写,以防止名字总出现 abc Abc aBc 这样的三个表,这样很难区分。习惯上我们一般只用小写字母和_来命名。mysql名字最长64个字符,但一般最好我们不要定义超过12个字符的名字。原创 2015-11-11 11:16:18 · 469 阅读 · 0 评论 -
timestamp 和 datetime 的比较
1:存储精度均为秒但是二者所占用的空间是不同的,timestamp只用4个字节,datetime用8个字节。2:timestamp具有自动赋值和自动更新的功能。下面为timestamp的详细介绍:1:以创建时间为默认值,更新时同时更新timestamp的时间为更新时的时间: timestamp default current_timestamp on update current_原创 2015-11-11 11:12:20 · 3744 阅读 · 0 评论 -
为什么不用enum
ENUM,有三个问题:添加新的值要做DDL,默认值问题(将一个非法值插入ENUM(也就是说,允许的值列之外的字符串),将插入空字符串以作为特殊错误值),索引值问题(插入数字实际是插入索引对应的值)实例:drop table if exists t; create table t(sex enum('0','1')); insert into t values(1);//这个原创 2015-11-11 10:51:57 · 628 阅读 · 0 评论 -
分组的相关工作。
group by 多字段,group _concat concathavingorder bydistinct主要用来实现分组的相关工作原创 2015-12-14 17:50:16 · 359 阅读 · 0 评论