mysql
文章平均质量分 70
胃小
这个作者很懒,什么都没留下…
展开
-
高性能mysql之数据库设计原则
数据库设计的三大范式第一范式: 确保每列保持原子性即表中的每个字段都是不可分割的最小单元, 如 : 性别,年龄,班级等, 第二范式: 一个表只存一种类型的数据即表在业务上保持相对的独立, 学生表只存储用户信息, 成绩表只存成绩信息, 将两张表合在一起是非常愚蠢的第三范式: 确保表中字段都和主键直接相关,即表中所有的所有字段都与主键相联系,尽量精简表的字段, 反范式: 冗余的思想三大范式很好的保证...原创 2018-01-05 11:32:50 · 655 阅读 · 0 评论 -
高性能mysql之索引
1. 概述索引是存储引擎用于快速查找记录的一种数据结构,通过合理的使用数据库索引可以大大提高系统的访问性能,接下来主要介绍在 MySQL 数据库中索引类型,以及如何创建出更加合理且高效的索引技巧。注:这里主要针对的是 InnoDB 存储引擎的 B+Tree 索引数据结构2. 索引的优点大大减轻了服务器需要扫描的数据量,从而提高了数据的检索速度帮助服务器避免排序和临时表可以将随机 I/O 变为顺序 ...转载 2018-03-30 20:34:12 · 222 阅读 · 0 评论 -
高性能mysql之优化
1、选取最适用的字段属性MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了。同样的,如果...转载 2018-03-30 20:35:16 · 130 阅读 · 0 评论 -
高性能mysql之事务的理解
acid只的是原子性,持久性,隔离性,持久性原子性,概念理解 : 事务代表的最小的执行单元,事务中操作要么同时发生,要么同时不发生,不会出现有些发生有些不发生的情况,例子 : 银行转账,A账户转账到给B账户转账100,事务中的操作分两步, A账户减100,B账户加100, 这两步必定同时成功或失败一致性概念理解 : 事务完成前后,事务必须从同一个一致性变到另一个一致性, 例子 : 银行转账 , 账...原创 2017-12-24 11:04:36 · 268 阅读 · 0 评论 -
高性能mysql之锁详解
一、概述数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则。MySQL各存储引擎使用了三种类型(级别)的锁定机制:表级锁定,行级锁定和页级锁定。1.表级锁定(table-level)表级别的锁定是MySQL各存储引擎中最大颗粒度的锁定机制。该锁定机制最大的特点是实现逻辑非常简单,带来的系统负面影响最小。所以获取锁和释放锁的速度很快。由于表级...转载 2018-04-01 13:14:14 · 830 阅读 · 0 评论 -
高性能mysql之explain实战
看一个sql, 这个sql比较长,多张表使用左外链接链接在一起,还涉及到分库,但是主要的是两张表是orderinfo表和orderdetail表以及临时表demp;orderinfo表与orderdetail表是一对多的关系,这两张表的数据量都是百万级;(sql中关键信息进行了处理,但不影响分析结果)SELECT busname, buscode, count(demp.orderno), su...原创 2018-04-03 09:38:08 · 593 阅读 · 0 评论 -
数据库设计(实用技巧)
id 一般是bigint(12)code 一般是varchar(20)状态一般用int(1)如果考虑扩展性,可以使用int(11)日期一般是date时间一般是time创建时间和更新时间一般是datetime能使用int就是用int 因为创建索引的时候效率高很少使用char类型,因为占用空间,而且hibernate映射的时候如果是null 则会抛异常金钱一般使用dec...原创 2018-10-04 23:40:31 · 228 阅读 · 0 评论