使用mysql应该注意的细节】的更多相关文章

一.mysql count distinct null 使用注意事项 1  用一个例子来讲解一个问题,现在又一个库表hello,表内容如下: id     name 1      Null 2      Null 3      Null 4      Null 5      Null hello表一共两个字段:id和name,name is null. 第一条SQL:SELECT COUNT(id) FROM hello;   查询结果:5,正确. 第二条SQL:SELECT COUNT(*)…
目录 1 整数类型 1.1 可选属性 1.1.1 M 1.1.2 UNSIGNED 1.1.3 ZEROFILL 2 浮点类型 2.1 精度误差 3 定点数类型 3.1 数据精度说明 3.2 类型介绍 4 位类型 5 日期与时间类型 5.1 TIMESTAMP 5.2 TIMESTAMP与DATETIME的区别 6 文本字符串类型 6.1 CHAR与VARCHAR 6.1.1 CHAR 6.1.2 VARCHAR 6.1.3 哪些情况使用CHAR或VARCHAR更好 6.2 TEXT类型 6.2…
1.尽量不要写太过复杂的SQL查询,不要想着非要一次性将结果全部以前端要求的形式返回出来,可以多次分开查询,这样逻辑清晰,问题解决速度快,方便维护,并且SQL的效率也高. 2.在使用联表查询的时候,关联表的表长一定不能过长,不然十分影响查询效率.工作中的实际情况是,当关联表表长接近1000时,速度就有明显下降. 3.有关GROUP BY: GROUP BY分组后,结果是汇聚成"组"的形式,多用于去重或者返回不同组内的统计数据,如最大值什么的,即只返回同一组数据中的一个值,可以和grou…
一.表及字段的命名规范 1.可读性原则 使用大写和小写来格式化的库对象名字以获得良好的可读性. 例如:使用CustAdress而不是custaddress来提高可读性.(这里注意有些DBMS系统对表名的大小写是敏感的) 2.表意性原则 对象的名字应该能够描述它所标识的对象 例如:对于表,表的名称应该能够体现 表中存储的数据内容:对于存储过程,存储过程名称应该能够体现存储过程的功能. 3.长名性原则 尽量不要使用缩写 适用于数据库(DATABASE)名之外的任一对象 二.字段类型的选择原则 例如:…
前言 换了工作之后,接近半年没有发博客了(一直加班),emmmm.....今天好不容易有时间,记录下工作中遇到的一些问题,接下来应该重拾知识点了.因为新公司工作中MySQL库经常出现查询慢,锁等待,节点挂掉........等一系列问题.导致每个程序员头都很大,一味抱怨“为什么我就查一条数据这么卡”,"我TM加了索引的啊,怎么还怎么慢"...........我想默默说的是,大部分MySQL出现锁等待,查询奇慢的情况基本都是因为SQL写的不好(有坑),或者数据表设计的不完善.对,不用想!这…
在Mysql中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因. 1.  两个字段的类型或者大小不严格匹配.例如,如果一个是int(10),那么外键也必须设置成int(10),而不是int(11),也不能是tinyint.另外,你还必须确定两个字段是否一个为 signed,而另一个又是unsigned(即:无符号),这两字段必须严格地一致匹配,更多关于signed和unsigned的信息,请参阅:http://www.…
1 mysql的innodb和cluster的NDB引擎都支持事务,在有共同的特性外,也有不同之处:以mysql cluster NDB 7.3和MySQL 5.6之InnoDB为例:ndb7.3基于mysql5.6,包括支持innodb1.1,因此可以在cluster里使用innodb表,但这些表不是集群的.MySQL Cluster NDB存储引擎用分布式, shared-nothing的架构实现,这使其和innodb有不少不同之处.比如事务.外键.表限制等,具体见下表: Theseare…
在Mysql中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因. 1.  两个字段的类型或者大小不严格匹配.例如,如果一个是int(10),那么外键也必须设置成int(10),而不是int(11),也不能是tinyint.另外,你还必须确定两个字段是否一个为 signed,而另一个又是unsigned(即:无符号),这两字段必须严格地一致匹配,更多关于signed和unsigned的信息,请参阅:http://www.…
demo:/root# mysql -uroot -pkjk7787czcb --socket=/data01/mysql/mysql.sock -e"show processlist" Warning: Using a password on the command line interface can be insecure. +-----+------+----------------------+--------+---------+------+---------------…
1 死锁问题背景 1 1.1 一个不可思议的死锁 1 1.1.1 初步分析 3 1.2 如何阅读死锁日志 3 2 死锁原因深入剖析 4 2.1 Delete操作的加锁逻辑 4 2.2 死锁预防策略 5 2.3 剖析死锁的成因 6 3 总结 7 死锁问题背景 做MySQL代码的深入分析也有些年头了,再加上自己10年左右的数据库内核研发经验,自认为对于MySQL/InnoDB的加锁实现了如指掌,正因如此,前段时间,还专门写了一篇洋洋洒洒的文章,专门分析MySQL的加锁实现细节:<MySQL加锁处理分…