- 博客(8)
- 收藏
- 关注
原创 【Laravel】Eloquent ORM的底层实现
动机首先来说一个Eloquent ORM的设计思想:Eloquent ORM就是将数据库中复杂的数据结果封装成更加smart的接口提供给用户使用。数据库中每一个表对应一个类,而类的实例对应数据库表中的一行记录,数据库中的列值会对应到类的属性上。一直在使用这个东西,之前并没有深入去了解过,借这个机会查阅了Laravel底层的源码。笔者的环境:Laravel5.5, Sublime
2018-01-21 19:07:42 3431
原创 【MySQL】MySQL数据类型宽度
MySQL中整数数据类型上图:MySQL的整数类型MySQL中数据类型的显示宽度显示宽度只是指明MYSQL最大可能显示的数字个数,数值的位数小于指定的宽度时会有空格填充,取决于你的设置。如果插入了大于显示宽度的值,只要该值不超过该类型的取值范围,数值依然可以插入显示出来。创建表时,可以在INT后面加入数
2018-01-09 21:33:14 3151 1
原创 【MySQL】SQL执行计划分析
MySQL EXPLAIN命令是查询性能优化不可缺少的一部分,该文主要讲解explain命令的使用及相关参数说明。
2018-01-09 09:15:30 27860 4
原创 【MySQL】常见的业务处理-删除重复数据
业务场景日常工作中我们经常会遇到这样的场景删除数据库中某个表中重复的数据。现在以一个案例驱动。需求:删除评论表中同一订单同一商品的重复评论,只保留最早的一条。上图是商品评论表查看是否存在重复评论查看是否存在对于一订单同一商品存在重复评论SELECT order_id, p
2018-01-08 23:51:55 2050
原创 【MySQL】常见的业务处理-分页显示
介绍分页在我们日常开发中是非常常见的需求,我们通常会用LIMIT加上偏移量的办法实现。但是大家有没有考虑过当偏移量大的时候分页SQL的执行效率呢?下面以一个例子来模拟优化的过程。业务需求有一个商品评论表结构如下:要求查询出某一个商品的前10条评论。我们写出的SQL可能会是这个样子
2018-01-08 23:50:29 854
原创 【MySQL】慢查询日志
什么是慢查询日志MySQL慢查询日志用于记录在MySQL中响应时间超过设置值long_query_time值的SQL,会被记录在慢查询日志中。默认情况下MySQL是不开启慢查询的,因为开启慢查询肯定会带来性能的影响,关于如何让开启慢查询日志请往下看。为什么需要慢查询日志我们不可能做到对所有的SQL都使用EXPLAIN语句来分析SQL的执行情况,使用慢查询
2018-01-08 23:48:46 1137
原创 【MySQL】常见的业务处理-进行分区间的统计
场景在日常工作中我们常常有这样的需求:统计所有数据区间的信息。案例:统计某个商城系统中所有登录用户消费金额大于1000元的,800到1000元的,以及800元以下的人数:用户登录表:商品订单表:MySQL中的函数条件判断函数函数作用CASE e
2018-01-08 23:42:40 8314
原创 【MySQL】分区表的使用
什么是分区表?在逻辑上为一个表,在物理上存储在多个文件中。所有的数据操作都会通过逻辑表转化成对存储引擎的接口调用,底层的物理表对于SQL层来说完全是一个暗箱操作。为什么要分区?将数据按照较粗的粒度存放在不同的表中,将关联的数据存放在一起,如果想批量删除整个分区非常方便。批量删除大数据量的数据可以采用清除整个分区的方式。比如我们后文中会提到的对每年的日志表
2018-01-07 20:27:23 1453
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人