随笔分类 -  mysql

摘要:/*** * 批量更新 * @param string $table 表名 * @param array $values 更新字段(二维数组) * @param string $index key值(主键) * @param array $where where条件 [['user_sn', '=' 阅读全文
posted @ 2023-04-28 09:51 大雾哥 阅读(105) 评论(0) 推荐(0) 编辑
摘要:场景:我们知道用 RabbitMQ 的延时队列可以实现用户下单后在 xxx 时间内未支付,需要自动关闭订单。但如果用户在订单即将过期的最后一秒支付成功、那么这笔订单算不算正常下单?要不要释放库存? 一、下单未支付超时自动关闭订单设计思路 1、以 30分钟 为例,订单表必须的字段 订单状态、订单支付状 阅读全文
posted @ 2023-01-13 12:17 大雾哥 阅读(1017) 评论(0) 推荐(0) 编辑
摘要:本次文章完全使用 mysql 自带的 show 命令实现获取,从 connects、buffercache、lock、SQL、statement、Database throughputs、serverconfig7 大方面全面获取监控数据。 1 连接数(Connects) 最大使用连接数:show 阅读全文
posted @ 2023-01-12 13:57 大雾哥 阅读(48) 评论(0) 推荐(0) 编辑
摘要:SELECT PARTITION_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME = 'xw_user_applyloan_baoxian'; SELECT count(id) as sum ,FROM_UNIX 阅读全文
posted @ 2021-01-31 22:34 大雾哥 阅读(220) 评论(0) 推荐(0) 编辑
摘要:mysql 查询一个地点(经纬度) 附近N公里内的数据。(根据一个地点的经纬度查询这个地点方圆几公里内的数据)1.创建测试表 CREATE TABLE `location` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar 阅读全文
posted @ 2020-12-14 16:56 大雾哥 阅读(521) 评论(0) 推荐(0) 编辑
摘要:由于直接使用临时表来创建中间表,其速度不如人意,因而就有了把临时表建成内存表的想法。但内存表和临时表的区别且并不熟悉,需要查找资料了。一开始以为临时表是创建后存在,当连接断开时临时表就会被删除,即临时表是存在于磁盘上的。而实际操作中发现临时表创建后去目录下查看发现并没有发现对应的临时表文件(未断开链 阅读全文
posted @ 2020-08-20 22:15 大雾哥 阅读(844) 评论(0) 推荐(0) 编辑
摘要:在MySQL中有三种虚拟表:临时表、内存表、视图。下面简单介绍一下临时表和内存表的使用。 1、临时表 MySQL临时表在我们需要保存一些临时数据时是非常有用的。临时表在MySQL 3.23版本中添加。临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。如果你使用了其他MySQ 阅读全文
posted @ 2020-08-20 21:53 大雾哥 阅读(1417) 评论(0) 推荐(0) 编辑
摘要:SELECT PARTITION_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME = 'xw_user_applyloan_baoxian'; SELECT count(id) as sum ,FROM_UNIX 阅读全文
posted @ 2020-06-17 10:55 大雾哥 阅读(255) 评论(0) 推荐(0) 编辑
摘要:乐观锁的实现 使用数据版本(Version)记录机制实现,这是乐观锁最常用的一种实现方式。何谓数据版本?即为数据增加一个版本标识,一般是通过为数据库表增加一个数字类型的 “version” 字段来实现。当读取数据时,将version字段的值一同读出,数据每更新一次,对此version值加一。当我们提 阅读全文
posted @ 2019-07-31 17:21 大雾哥 阅读(446) 评论(0) 推荐(0) 编辑
摘要:MySQL错误:ERROR 1205 (HY000): Lock wait timeout 处理方案: 执行mysql命令:show full processlist; 然后找出插入语句的系统id 执行mysql命令:kill id 阅读全文
posted @ 2019-07-31 17:19 大雾哥 阅读(4310) 评论(0) 推荐(0) 编辑
摘要:前期工作 一、在宿主机创建文件夹 D:\wnmp\mysql57-conf D:\wnmp\mysql57-log D:\wnmp\nginx110-conf D:\wnmp\nginx110-log D:\wnmp\php71-conf D:\wnmp\php71-log D:\wnmp\www 阅读全文
posted @ 2019-07-31 16:26 大雾哥 阅读(3420) 评论(0) 推荐(0) 编辑
摘要:hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。可 能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大 阅读全文
posted @ 2019-03-22 18:05 大雾哥 阅读(381) 评论(0) 推荐(0) 编辑
摘要:1、插入一条数据,存在就更新,不存在就更新(必须现有唯一键)使用insert ignore语句: 例如插入数据: 这样一来,如果表中已经存在last_name='LeBron'且first_name='James'的数据,就不会插入,如果没有就会插入一条新数据。上面的是一种用法,也可以用 INSER 阅读全文
posted @ 2019-03-06 23:05 大雾哥 阅读(23681) 评论(0) 推荐(2) 编辑
摘要:数据库设计范式 什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的的数据库是需要满足一些 规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。 什么是三大范式: 第一范式:当关系模式R的所有属性都不能在分解为更基本的数 阅读全文
posted @ 2019-03-06 00:15 大雾哥 阅读(167) 评论(0) 推荐(0) 编辑
摘要:抢购、秒杀是平常很常见的场景,面试的时候面试官也经常会问到,比如问你淘宝中的抢购秒杀是怎么实现的等等。抢购、秒杀实现很简单,但是有些问题需要解决,主要针对两个问题: 一、高并发对数据库产生的压力二、竞争状态下如何解决库存的正确减少("超卖"问题)第一个问题,对于PHP来说很简单,用缓存技术就可以缓解 阅读全文
posted @ 2019-03-06 00:04 大雾哥 阅读(393) 评论(0) 推荐(0) 编辑
摘要:1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在 阅读全文
posted @ 2019-03-05 23:15 大雾哥 阅读(1104) 评论(0) 推荐(0) 编辑
摘要:当有业务需求需要一次性循环n条数据,插入或更新数据库时,如果单纯的循环,插入/更新,会消耗太多的数据库资源 一下是一种简单的解决方案 数据库的insert 是可以批量更新的,当有大量数据循环insert时,可以将数据先保留不执行插入命令,到最后一条时一次性插入,例如tp的addAll()方法; 数据 阅读全文
posted @ 2019-03-05 23:14 大雾哥 阅读(1241) 评论(0) 推荐(0) 编辑
摘要:分表: 分表分为水平分表和垂直分表。 水平分表原理: 分表策略通常是用户ID取模,如果不是整数,可以首先将其进行hash获取到整。 水平分表遇到的问题: 1. 跨表直接连接查询无法进行 2. 我们需要统计数据的时候 3. 如果数据持续增长,达到现有分表的瓶颈,需要增加分表,此时会出现数据重新排列的情 阅读全文
posted @ 2019-03-05 23:08 大雾哥 阅读(2104) 评论(0) 推荐(0) 编辑
摘要:MySQL InnoDB事务的隔离级别有四级,默认是“可重复读”(REPEATABLE READ)。 未提交读(READ UNCOMMITTED)。另一个事务修改了数据,但尚未提交,而本事务中的SELECT会读到这些未被提交的数据(脏读)。提交读(READ COMMITTED)。本事务读取到的是最新 阅读全文
posted @ 2018-12-19 09:55 大雾哥 阅读(1097) 评论(0) 推荐(0) 编辑
摘要:1 [mysqld] 2 ; 设置3306端口 3 port=3306 4 ; 设置mysql的安装目录 5 basedir=D:/wamp64/bin/mysql/mysql8.0.11 6 ; 设置mysql数据库的数据的存放目录 7 datadir=D:/wamp64/bin/mysql/mysql8.0.11/data 8 ; 允许最大连接数 9 max_connect... 阅读全文
posted @ 2018-05-18 10:58 大雾哥 阅读(7676) 评论(0) 推荐(0) 编辑