mysql
摘星辰Li
这个作者很懒,什么都没留下…
展开
-
mysql分页查询优化
普偏写法:select * from buyer where sellerid=100 limit 100000,5000造成查询慢原因:普通limitM,N的翻页写法,在越往后翻页的过程中速度越慢,原因mysql会读取表中的前M+N条数据,M越大,性能就越差。优化写法:select t1.* from buyer t1,(select id from buyer sellerid=...原创 2020-01-07 16:02:59 · 202 阅读 · 0 评论 -
主从复制延迟导致坑
背景:线上出现了用户注册了多条重复记录排查问题:第一种一开始怀疑是不是并发问题造成,后来查了大多数都是隔了几秒钟,并发出现概率小第二种就是看出现重复数据的时间,然后线上看到从库出现了延迟复制的问题,这就问题出现的关键原来代码逻辑:先查询传过来的openid是否在从库中存在,不存在就进行主库插入。出现问题关键点:前端第一次请求时候,判断从库不存在,然后主库插入注册数据。由于出现复...原创 2019-11-26 10:56:39 · 211 阅读 · 0 评论 -
mysql隐式转换
定义:当操作符与不同类型的操作数一起使用时,会发生类型转换以使操作数兼容。则会发生转换隐式举一个常见例子:1、我们先创建一个表,有关手机号查询create table user( id int(11) not null primary key auto_increment, phone varchar(30) null comment "phone" );#手机号创建索引...原创 2019-11-25 17:01:23 · 177 阅读 · 0 评论 -
乐观锁和悲观锁例子
乐观锁:例子对于一个正在出售的火爆商品,同一个时间,同时有10个人同时发起了10个线程来购买,10个线程读取到数据库的库存有20件和version为9。那么乐观锁读取num数量和version版本两个字段,在更新的结果时候,我们就要更新条件where version=9这条语句,具体UPDATE goods SET num=num-1,version=version+1 WHERE ver...原创 2019-08-01 16:57:18 · 888 阅读 · 0 评论 -
mysql将字段导出为数据字典
导出代码如下:SELECTCOLUMN_NAME 字段名,COLUMN_TYPE 数据类型,IS_NULLABLE AS '允许为空',COLUMN_COMMENT 字段说明FROMINFORMATION_SCHEMA.COLUMNSwhere-- student_management为数据库名称,到时候只需要修改成你要导出表结构的数据库即可table_schema ='stu...原创 2019-05-16 16:39:56 · 781 阅读 · 0 评论 -
mysql 一对多查询出一行数据
这个超级好用,我们有个一对多的表,我们可以一次性取出多条相关联数据拼接给到前端显示。SELECT company.*,(SELECT GROUP_CONCAT(contact_name) FROM company LEFT JOIN company_contact on company.id=company_contact.company_id ) as b FROM company ...原创 2019-04-30 16:48:52 · 3911 阅读 · 1 评论 -
mysql复制表
什么时候我们会用到复制表?例如:我现在对一张表进行操作,但是怕误删数据,所以在同一个数据库中建一个表结构一样,表数据也一样的表,以作备份。如果用mysqldump比较麻烦,备份.MYD,.MYI这样的文件呢,操作起来也还是麻烦。一,复制表结构方法1:(复制表结构)create table video_useless like video;方法2:(复制表结构)show create...原创 2018-10-26 11:23:20 · 343 阅读 · 0 评论 -
mysql临时表和文件排序优化
原来出现问题的语句:EXPLAIN SELECT video.target, video.state, video.flag, video.time_length, video.upload_time, video.cover_position, video.click_count, m...原创 2018-07-28 09:57:03 · 1792 阅读 · 0 评论 -
查看mysql执行时长
一、查看是否开启profiles#查看profile是否开启,数据库默认是不开启的。变量profiling是用户变量,每次都得重新启用。show variables like "%pro%";二、开启profilesset profiling=1;三、执行语句查看时间show profiles;四、关闭profilesset profilin...原创 2018-07-27 19:05:44 · 1085 阅读 · 0 评论 -
站内信三种实现方式
站内信? 答:就是系统发给整个用户推送的消息。第一种:(用户量几百人)建立一张表message表然后向这张表遍历所有用户插入每个人一条信息 表如下: message表: id:编号;send_id:发送者编号;rec_id:接受者编号;message:站内信内容;status:站内信的查看状态;send_date:站内信发送时间;第二种:(用户量上万...原创 2018-06-05 16:48:07 · 28859 阅读 · 6 评论 -
几分钟了解mysql定时任务实现
定时任务实现思路: 就是定义一个event事件,然后调用某个存储过程(就类似类的方法)。一、查看事件开启情况show variables like '%event_sche%';二、开启event_schedulerset global event_scheduler =1;三、创建存储过程testCREATE PROCEDURE test...原创 2018-04-21 11:55:30 · 315 阅读 · 0 评论 -
数据库主从同步延迟导致坑
背景:线上出现了用户注册了多条重复记录排查问题:第一种一开始怀疑是不是并发问题造成,后来查了大多数都是隔了几秒钟,并发出现概率小第二种就是看出现重复数据的时间,然后线上看到从库出现了延迟复制的问题,这就问题出现的关键原来代码逻辑:先查询传过来的openid是否在从库中存在,不存在就进行主库插入。出现问题关键点:前端第一次请求时候,判断从库不存在,然后主...原创 2018-04-23 18:09:18 · 2699 阅读 · 0 评论 -
二进制、八进制、十进制、十六机制的相互转换
每种进制都是有个字母代表的,分别如下:B(Binary)表示二进制,分别代表0~1表达一个数O(Octal)表示八进制,分别代表0~7表达一个数D(Decimal)或不加表示十进制,分别代表0~9表达一个数H(Hexadecimal)表示十六进制,这个特殊些有字母代替,分别0123456789ABCDEF 例如:(101011)B=(53)O=(43)D=(2B)H其他三种...原创 2018-04-04 15:08:28 · 1854 阅读 · 0 评论 -
表属性多,怎么扩展?
背景:关于一个视频鉴别业务,原来一开始鉴别视频是否有不良信息,用的是商汤识别服务,它可以识别是否是游戏和游戏有什么英雄,开始设置为is_game,game_hero。后来感觉不太理想,换个数美视频鉴别,它可以鉴别是否有涉黄、涉政、涉暴然后返回我们是否是可用,这样我又要建立level字段。思考:这样是不是我们业务的改变了,我们需要的字段都要新增一个,有没有办法这些只是显示字段的值并不需要查询的字...原创 2018-04-03 11:46:42 · 349 阅读 · 0 评论 -
让远程连接linux服务器的数据库mysql
为了安全考虑,仅允许云主机本机(localhost)连接数据库,如果需要远程连接数据库,需要如下操作:打开iptables 3306端口# iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT# service iptables save #保存iptables规则如下图:数据库授权远程连接新建一...原创 2018-04-03 11:38:49 · 1090 阅读 · 0 评论 -
mysql复制表
什么时候我们会用到复制表?例如:我现在对一张表进行操作,但是怕误删数据,所以在同一个数据库中建一个表结构一样,表数据也一样的表,以作备份。如果用mysqldump比较麻烦,备份.MYD,.MYI这样的文件呢,操作起来也还是麻烦。一,复制表结构方法1:(复制表结构)create table video_useless like video;方法2:(复制表结构)...原创 2018-04-03 11:32:51 · 264 阅读 · 0 评论 -
pt-online-schema-change大表结构修改利器
简介: pt-online-schema-change是Percona-toolkit一员,通过改进原生ddl的方式,达到不锁表在线修改表结构。pt-osc工作过程 1. 创建一个和要执行 alter 操作的表一样的新的空表结构(是alter之前的结构) 1. 在新表执行alter table 语句(速度应该很快) 1. 在原表中创建触发器3个触发器分别对应insert,upd...原创 2018-04-03 11:23:52 · 367 阅读 · 0 评论 -
Percona Toolkit初识
简介: percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括: - 检查master和slave数据的一致性 - 有效地对记录进行归档 - 查找重复的索引 - 对服务器信息进行汇总 - 分析来自日志和tcpdump的查询 - 当系统出问题的时候收集重要的系统信息ce...原创 2018-04-03 11:22:11 · 217 阅读 · 0 评论