Laravel

UUID 作为数据库主键的 Insert 性能测试记录

March 9, 2019
Laravel, 後端開發

UUID 作为数据库主键的 Insert 性能测试记录 # 在之前一篇 《Laravel使用UUID作为用户表主键并使用自定义用户表字段》发布之后和一个朋友的朋友聊了聊,讲到了一个我没有考虑到的UUID作为主键的问题——Insert性能问题。 朋友的朋友看法如下(有删改): 如果非要用 UUID 的话,完全可以用一个列来单独存放 UUID 的,没有必要把 UUID 设置为主键。自增主键的作用是 insert 的时候是顺序插入到磁盘里的,这样 innodb 直接插入就好了,因为索引插入要进行排序等一系列操作的,涉及到 innodb 索引的具体知识了,所以为了性能考虑,基本都是自增主键,保证顺序 而不是随机 Naïve Insert Time Test # 从一个小的测试开始: 硬件环境: Core i7-8560U 16GiB LPDDR3 SAMSUNG PM981 软件环境: Laravel 5.6 MySQL 5.6 有兩個數據表,一個是使用 UUID 作爲主鍵的 users 表,一個是使用自增 id 作爲主鍵的 tickets 表,串行同步的方式插入 1000 條數據,相關 seed 函數和運行時間如下: User Table with UUID as PK # for ($i=0; $i < 1000; $i++) { DB::table('users')->insert(\[ 'user\_uuid' => (string) Uuid::generate(4), 'user\_name' => str\_random(10), 'user\_password' => bcrypt('secret'), \]); } 用時 62. ...

Build a naïve Blog with Laravel

March 9, 2019
Laravel, 後端開發

Build a naïve Blog with Laravel # 项目 # 基于springboot的个人博客系统 知识点 # *前端layui *springboot通用开发流程 springmvc hibernate-jpa web-service-dal mustache模板引擎 *Springboot Interceptor开发 *富文本编辑器 simeditor *博客热词词云 https://github.com/kennycason/kumo *图片上传组件 及解决方案 前端layui.upload https://www.layui.com/doc/modules/upload.html spring文件上传支持 ng代理/tomcat vdir 图像处理 *EXIF 读取及记录 https://github.com/drewnoakes/metadata-extractor 百度图像识别API 获取信息及记录 http://ai.baidu.com/docs#/ImageClassify-API/141c7bfa *图像timeline展示 https://www.layui.com/doc/element/timeline.html 部署相关 spring-boot的打包 spring.profiles.active linux基本命令 部署依赖(JDK、MySQL、ng) 实训计划 # 时间 知识点 进度 day0 需求宣讲、分组、数据库设计 确认项目需求、完成数据库设计 day1 springboot通用开发流程 确认项目UI、完成登录与注册开发 day2 spring interceptor开发 完成登录的interceptor开发 day3-4 layui+simeditor 完成博客撰写页\完成首页及详情页 day5-6 ...