![](https://img-blog.csdnimg.cn/2020062915373046.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Mysql
mysql的一些实用技巧
码哥说
路漫漫其修远兮
展开
-
count(*)/count(1)/count(主键)统计效率对比
前言 在实际业务开发中,我们常常需要count数据表的记录条数。关于使用mysql的count统计函数,大多开发者都不会有疑问,但是就使用细节上,大家的观点可能就不一致了。一派认为count(1)比count(*)要快,说count(*)要全表扫描而count(1)则不用。另一派反之。针对count(主键)和count(1)和count(*),大家几乎一致认为count(主键)效率较慢。那么实际情...原创 2019-06-10 10:29:11 · 1660 阅读 · 0 评论 -
mysql5.7密码过期
事件 近期,一直运作好好的mysql服务器突然远程连接上不上了,报错“ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.”,怀疑运维改了密码,登上远程服务器一顿操作,返现服务器本地访问mysql没有任何问...原创 2019-03-14 11:51:45 · 325 阅读 · 0 评论 -
mysql8.0连接2059报错问题
背景 博主使用mac+docker安装了一套php开发环境(nginx+mysql+php),最近更新了mysql,突然发现navicat远程连接mysql报错: 2059:Authentication plugin 'caching_sha2_password' cannot be loaded 网上一堆卸载和重装的解决方案,呵呵。 原因 mysql8 之前的版本中加密规则是mysql_nat...原创 2019-03-14 11:51:22 · 340 阅读 · 0 评论 -
mysql锁总结
mysql锁 悲观锁: 悲观锁:顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 乐观锁 乐观锁:顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别...原创 2019-03-14 11:48:22 · 119 阅读 · 0 评论 -
mysql表设计规范(58)
mysql设计规范 基础规范 表存储引擎必须使用InnoDB 表字符集默认使用utf8,必要时候使用utf8mb4 解读: (1)通用,无乱码风险,汉字3字节,英文1字节 (2)utf8mb4是utf8的超集,有存储4字节例如表情符号时,使用它 禁止使用存储过程,视图,触发器,Event 解读: (1)对数据库性能影响较大,互联网业务,能让站点层和服务层干的事情,不要交到数据库层 (2)调试...原创 2019-03-14 11:47:39 · 125 阅读 · 0 评论 -
大数据高并发下表如何扩展字段?
表字段扩展方案 背景 业务需要,开发了新功能,对应的,需要对原表新增一些必要字段。想当然的 alter table add column 相信很多朋友和我一样,认为没问题。的确,针对一般的项目OK,为啥?因为数据量不大的小站当然没问题,alter造成的也是可以接受的。但是,针对数据量大且并发高的这肯定是有问题的。 于是,博主研究了一些成熟的应对方案。 解决方案 pt-online-schema...原创 2019-03-14 11:29:24 · 806 阅读 · 0 评论 -
并发下的库存如何扣?
并发下的库存如何扣? 背景 业务反馈,项目出现库存超卖/负值现象。 原因 //简易demo $conn = mysqli_connect('localhost','root','123456','shop') or die('数据库连接失败'); $conn->query("SET NAMES 'UTF8'"); $query = "SELECT num FR...原创 2019-03-14 11:28:36 · 738 阅读 · 0 评论