MySQL MySQL 树形结构数据库设计 程序设计过程中,我们常常用树形结构来表示某些数据的关联关系,如企业的部门上下级、电商平台的商品分类等等,通常而言,我们需要通过数据库来完成数据的持久化。由于关系型数据库没有一个很好的树形结构解决方案,... 07月31日 9,177 发表评论 收藏 阅读全文
MySQL 高性能索引(B-Tree 索引) 索引有很多类型,可以为不同的场景提供更好的性能。在 MySQL 中,索引是存储在引擎层而不是服务器层实现的。所以,并没有统一的索引标准:不同存储引擎的索引的工作方式并不一样,也不是所有的存储引擎都支持... 07月29日 MySQL 1,943 发表评论 收藏 阅读全文
MySQL 高性能的索引 索引(在 MySQL 中也叫做“键( key )”)是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能非常关键。尤其是当表中的数据量越来越大时,索引对性能的影响愈发重要。索引基础在 MySQ... 07月29日 MySQL 1,537 发表评论 收藏 阅读全文
Thinkphp5 控制器(三:控制器与模型交互) 对于简单的业务,无需通过逻辑层、服务层等交互,这样对于开发来讲是相对复杂,于是我们可以将简单的业务进行封装。对验证器、控制器、模型进行封装调用/** * 快速调用执行model函... 07月22日 PHP 2,677 发表评论 收藏 阅读全文
ThinkPHP5 工具类(四:上传文件至 OSS) 前面介绍了 ThinkPHP5 文件上传类,下面我们利用 ThinkPHP5 文件类实现上传文件至 OSS。文件保存在OSS有以下好处:1)实现服务器水平扩展(负载均衡)时,可以保证用户上传的文件保存... 07月22日 PHP 4,200 发表评论 收藏 阅读全文
MySQL 范式与反范式的选择 对于任何给定的数据通常有很多种表示方法,从完全的范式化到完全的反范式话,以及两者的折中。在范式化的数据库中,每个事实数据会出现并只出现一次。相反,在反范式化的数据库中,信息是冗余的。如果不熟悉范式和反... 07月21日 MySQL 2,728 发表评论 收藏 阅读全文
MySQL 三种范式以及反范式 第一范式确保数据表中每列(字段)的原子性,即每个字段都是最小单位,不可拆分。如:用户表(user)中的 user_name,password,nick_name。第二范式在第一范式的基础上,保证表中的... 07月21日 MySQL 1,741 发表评论 收藏 阅读全文
MySQL 数据类型优化 (五:选择标识符 identifier 以及特殊类型) 一、选择标识符 (identifier)为标识列 (identifier column)选择合适的数据类型非常重要。一般来说更有可能用标识列与其他列进行比较,或者通过标识列寻址其他列。标识列也有可能在... 07月20日 MySQL 2,001 发表评论 收藏 阅读全文
MySQL 数据类型优化(四:位数据类型) MySQL 有少数几种存储类型使用紧凑的位存储结构。所有这些位类型,不管底层存储格式和处理方式如何,从技术上来讲都是字符串类型。BIT在 MySQL 5.0 之前,BIT 是 TINYINT 的同义词... 07月20日 MySQL 1,768 发表评论 收藏 阅读全文
ThinkPHP5 工具类(三:Session 类) 由于PHP自带的session销毁采用GC的销毁,具有诸多弊病,如无法及时清理过期session,所以最好通过程序来判断session是否过期。tp5的 session类说明文档: http... 07月15日 PHP 2,780 发表评论 收藏 阅读全文