MySQL
文章平均质量分 89
MySQL
数据与后端架构提升之路
没人会把我们变的越来越好,时间也只是陪衬。支撑我们变的越来越好的是我们自己不断进阶的才华,修养,品行以及不断的反思和修正
展开
-
百万数据集测试赛题秒级查询的MySQL方案
揭秘MySQL编程大赛优胜方案!看出色选手如何利用python解24点,并将复杂解决方案用MySQL优雅处理,提供了百万级数据处理的实用战术以及明快资讯原创 2023-12-29 14:48:01 · 1136 阅读 · 0 评论 -
58同城MySQL使用规范30条军规
MySQL使用规范30条军规原创 2019-07-02 23:45:37 · 525 阅读 · 0 评论 -
CentOS7下安装MySQL5.7踩坑指南
1.下载安装包su rootwgethttp://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz2.解压安装包tar zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz3.进入文件夹mv mysql-5.7.20-linux-glibc2.12-x86_64 mysqlcd mysql4....原创 2020-11-06 12:23:56 · 2156 阅读 · 3 评论 -
insert into ... select 由于SELECT表引起的死锁情况分析
Insert into select请慎用。这天xxx接到一个需求,需要将表A的数据迁移到表B中去做一个备份。本想通过程序先查询查出来然后批量插入。但xxx觉得这样有点慢,需要耗费大量的网络I/O,决定采取别的方法进行实现。通过在Baidu的海洋里遨游,她发现了可以使用insert into select实现,这样就可以避免使用网络I/O,直接使用SQL依靠数据库I/O完成,这样简直不要太棒了。然后她就被开除了。事故发生的经过。由于数据数据库中order_today数据量过大,当时好像有700.转载 2020-08-05 18:39:04 · 960 阅读 · 0 评论 -
MySQL存储过程中双层游标嵌套循环实例
用户操作统计表CREATE TABLE `count_active_user` ( `id` varchar(20) NOT NULL COMMENT 'ID-20190220', `type` varchar(50) NOT NULL COMMENT '分类', `user_id` varchar(32) NOT NULL COMMENT '用户ID', `count` int...原创 2020-04-20 17:12:27 · 1113 阅读 · 0 评论 -
MySQL一张表和另一张表符合条件的第一条数据关联
需求最近项目中有个需求,H5页面表:h5和组织的关联关系表= 1:n如果有多个绑定关系时取关联表id最小的关联关系,要求写出支持按组织名称或页面名称过滤的分页查询SQLh5页面表CREATE TABLE `h5page` ( `Id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id', `PageName` varcha...原创 2019-08-12 18:08:47 · 4981 阅读 · 0 评论 -
MySQL性能优化策略与实战技巧
MysSQL体系机制Client Connectors接入方 支持协议很多Management Serveices & Utilities系统管理和控制工具, mysqldump、 mysql复制集群、 分区管理等Connection Pool连接池: 管理缓冲用户连接、 用户名、 密码、 权限校验、 线程处理等需要缓存的需求SQL InterfaceS...原创 2019-06-04 08:10:42 · 686 阅读 · 0 评论 -
深入探索 MySQL Binlog:原理、工作机制与实践应用
binlog是记录所有数据库表结构变更(例如CREATE、ALTER TABLE…)以及表数据修改(INSERT、UPDATE、DELETE…)的二进制日志。原创 2019-03-26 12:54:43 · 55605 阅读 · 4 评论 -
MySQL innodb 的间隙锁定(next-key locking)
行锁的分类MySQL InnoDB支持三种行锁定方式:行锁(Record Lock):锁直接加在索引记录上面。间隙锁(Gap Lock):锁加在不存在的空闲空间,可以是两个索引记录之间,也可能是第一个索引记录之前或最后一个索引之后的空间。Next-Key Lock:行锁与间隙锁组合起来用就叫做Next-Key Lock。InnoDB默认加锁方式是next-key 锁。 什么是间隙锁...转载 2019-02-26 11:54:55 · 1257 阅读 · 0 评论 -
经典问题之乐观锁和悲观锁及使用场景
悲观锁悲观锁(Pessimistic Lock),顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。Java synchronized 就属于悲观锁的一种实现,每次线程要修改数据时都先获得锁,保证同一时刻只有一个线程能操作数据,其他线程则...转载 2019-02-26 08:19:23 · 739 阅读 · 0 评论 -
数据库分库分表的总结
(1)为什么要分库分表?(设计高并发系统的时候,数据库层面该如何设计?)分表是啥意思?就是把一个表的数据放到多个表中,然后查询的时候你就查一个表。比如按照用户id来分表,将一个用户的数据就放在一个表中。然后操作的时候你对一个用户就操作那个表就好了。这样可以控制每个表的数据量在可控的范围内,比如每个表就固定在200万以内。分库是啥意思?就是你一个库一般我们经验而言,最多支撑到并发200...原创 2019-02-16 18:18:52 · 547 阅读 · 0 评论 -
《高性能MySQL》阅读笔记
基础知识事务的特性:原子性:指处于同一个事务中的多条语句是不可分割的。一致性:事务必须使数据库从一个一致性状态变换到另外一个一致性状态。比如转账,转账前两个账户余额之和为2k,转账之后也应该是2K。隔离性:指多线程环境下,一个线程中的事务不能被其他线程中的事务打扰持久性:事务一旦提交,就应该被永久保存起来。四种事务隔离级别:读未提交,读已提交,重复读,可串行化不...原创 2016-11-06 20:34:32 · 751 阅读 · 0 评论 -
深入理解SELECT ... LOCK IN SHARE MODE和SELECT ... FOR UPDATE
SELECT ... LOCK IN SHARE MODE走的是IS锁(意向共享锁),SELECT ... FOR UPDATE 走的是IX锁(意向排它锁)原创 2019-01-04 18:15:06 · 2433 阅读 · 1 评论 -
MySQL查看死锁和解除锁
解除正在死锁的状态有两种方法:第一种杀死会话:1.查询是否锁表show OPEN TABLES where In_use > 0;2.查询进程(如果您有SUPER权限,您可以看到所有线程。否则,您只能看到您自己的线程)show processlist或者查询出所有需要Killd的Id;select concat('KILL ',id,';') from infor...原创 2018-11-18 16:30:48 · 4540 阅读 · 0 评论