![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
Penge_
真正的大神是勇于分享自己的技术
展开
-
MySQL性能优化汇总
年少不知优化苦,遇坑方知优化难。 ——村口王大爷本文内容导图如下:当然,本篇也是关于性能优化的,那性能优化就应该一把梭子吗?还是要符合一些规范和原则呢?所以,在开始之前(MySQL 优化),咱们先来聊聊性能优化的一些原则。性能优化原则和分类性能优化一般可以分为:主动优化 被动优化所谓的主动优化是指不需要外力的推动而自发进行的一种行为,比如当服务没有明显的卡顿、宕机或者硬件指标异常的情况下,自我出发去优化的行为,就可以称之为主动优化。而被动优化刚好与主动优化相反,它是指在.转载 2020-09-21 17:47:02 · 238 阅读 · 0 评论 -
MySQL锁的问题
什么是锁面试官:: 你是来参加面试的吧?吒吒辉:不 不 不,我是来参加复试呢。面试官:: 看到上次别人点评,MySQL优化还阔以。那你先谈谈对锁的理解?吒吒辉:嘿嘿,还好!锁是计算机在进行多 进程、线程执行调度时强行限制资源访问的同步机制,用于在并发访问时保证数据的一致性、有效性;锁是在执行多线程时,用于强行限制资源访问的同步机制,即用在并发控制中保证对互斥的要求。一般的锁是建议锁(advisory lock),每个线程在访问对应资源前都需获取锁的信息,再根据信息决定是否可以访..转载 2020-09-01 17:20:47 · 236 阅读 · 0 评论 -
秒杀系统设计(前端设计,网关的作用,解决Redis的并发竞争,数据的同步方式,MQ的作用)
背景我之前写过一个秒杀系统的文章不过有些许瑕疵,所以我准备在之前的基础上进行二次创作,不过让我决心二创秒杀系统的原因是我最近面试了很多读者,动不动就是秒杀系统把我整蒙蔽了,我懵的主要是秒杀系统的细节大家都不知道,甚至不知道电商公司一个秒杀系统的组成部分。我之前在某电商公司就是做电商活动的,所以这样的场景和很多解决方案我是比较清楚的,那我就从我自身去带着大家看看一个秒杀的设计细节以及中间各种解决方案的利弊,以下就是我设计的秒杀系统,几乎涵盖了市面上所有秒杀的实现细节:正文首先设计一个系统之转载 2020-08-14 15:59:02 · 709 阅读 · 0 评论 -
数据库设计时,是否要设置外键?
外键的定义:是数据库提供的一种完整性约束,保证数据的完整性。在许多数据库的书上也会介绍到,然而对于外键这个完整性性约束究竟应该在数据库端实现,还是在项目业务端实现很多人有着不同的意见。 在查看了很多大牛的文章后我总结出来如下:个人开发(小型应用)、数据库读写资源充足(数据库并发低),集中式数据库系统,则应该使用外键保障数据的完整性,减少开发端的负担,有利于数据库开发与程序开发的分离。 团队开发(大型应用)。数据库的读写成为瓶颈(数据库并发高),分布式数据库系统(分割式存储数据),(如阿.原创 2020-08-10 15:38:48 · 963 阅读 · 0 评论 -
MySQL的Explain应用
在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。所以我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略预计会被优化器采用。-- 实际SQL,查找用户名为Jefabc的员工select * from emp原创 2020-05-12 11:08:26 · 128 阅读 · 0 评论 -
MySQL 通用查询日志和慢查询日志开启
MySQL中的日志包括:错误日志、二进制日志、通用查询日志、慢查询日志等等。这里主要介绍下比较常用的两个功能:通用查询日志和慢查询日志。1)通用查询日志:记录建立的客户端连接和执行的语句。2)慢查询日志:记录所有执行时间超过long_query_time秒的所有查询或者不使用索引的查询(1)通用查询日志在学习通用日志查询时,需要知道两个数据库中的常用命令:1) showvariables like...转载 2018-06-04 17:40:33 · 581 阅读 · 0 评论 -
MySql避免重复插入记录方法(ignore,Replace,ON DUPLICATE KEY UPDATE)
案一:使用ignore关键字如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免重复插入记录可以使用: 代码如下11 INSERT IGNORE INTO `table_name` (`email`, `phone`, `user_id`) VALUES ('test9@163.com', '9999转载 2017-12-01 09:51:37 · 278 阅读 · 0 评论 -
mysql数据库误删除后的数据恢复操作说明
在日常运维工作中,对于mysql数据库的备份是至关重要的!数据库对于网站的重要性使得我们对mysql数据的管理不容有失!然后,是人总难免会犯错误,说不定哪天大脑短路了来个误操作把数据库给删除了,怎么办???下面,就mysql数据库误删除后的恢复方案进行说明。一、工作场景(1)MySQL数据库每晚12:00自动完全备份。(2)某天早上上班,9点的时候,一同事犯晕drop了转载 2017-11-09 16:08:01 · 1004 阅读 · 0 评论 -
linux中安装mysql,如何开启远程访问权限
安装步骤就不多说了,直接进入正题:打开MySQL数据库远程访问的权限链接mysql,运行#mysql -uroot -p123456切换数据库#use mysql查询mysql用户信息#SELECT User, Password ,Host From user;开启任何主机都能链接mysql服务器#GRANT AL原创 2017-10-11 09:41:22 · 543 阅读 · 0 评论 -
mysql 乐观锁和悲观锁的区别,以及乐观锁实现
一、为什么需要锁(并发控制)? 在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突。这就是著名的并发性问题。 典型的冲突有: 1.丢失更新:一个事务的更新覆盖了其它事务的更新结果,就是所谓的更新丢失。例如:用户A把值从6改为2,用户B把值从2改为6,则用户A丢失了他的更新。 2.脏读:当一个事务读取其它完成转载 2017-10-19 17:53:24 · 735 阅读 · 0 评论 -
Linux下修改MySQL用户(root)密码
以下命令适合修改任何mysql用户,仅以root为例。一、拥有原来的myql的root的密码;123456# mysql -uroot -pEnter password: 【输入原来的密码】(如果安装完mysql第一次设置root密码,则直接回车)mysql>use mysql;转载 2017-10-09 16:53:39 · 3505 阅读 · 0 评论