我们有个订单开发票场景,需要定时的将待开票的订单数据查询出来,写入到发票待开表。 大促期间我们发现这个定时任务失效了,每次的查询都超时(10秒超时),定时任务没法将数据从待开表查询出来。 我们的SQL大概这样: 我们尝试不带过滤条件查询是非常快的,我们又仔细检查了我们的查询条件都是加了索引的。 然后我们尝试了强制索引模式,发现查询速度就很快了。 理解: 原因可能是数据库查询优化器在默认情况下没有选…
Leave a Comment分类: MYSQL
mysql强制索引和禁止某个索引 1、mysql强制使用索引:force index(索引名或者主键PRI) 例如: select * from table force index(PRI) limit 2;(强制使用主键) select * from table force&n…
Leave a CommentMySQL报incorrect datetime value ‘0000-00-00 00:00:00’ for column错误原因,是由于在MySQL5.7版本以上,默认设置SQL_Mode模式,在模式里有NO_ZERO_DATE,NO_ZERO_IN_DATE,存在表示系统里DATE类型字段不能有0值,所以在执行update 操作时汇报此错误。那么如何解决有以下几个思…
Leave a CommentMySQL 事务,是我们去面试中高级开发经常会问到的问题,很多同学虽然经常使用 MySQL,SQL 语句写得很6,但是很多时候,被问到这些问题的时候,总是不知从何说起,下面我们来系统的学习一下什么是 MySQL事务,让我们面对面试官的时候能够侃侃而谈,避免一问三不知的尴尬。 1. 什么是事务 释义:事务是数据处理的最小操作单元,是一组不可在分割的操作集合,这个操作单元里的一系列操作要么都成功,要么…
Leave a Comment我们知道,数据也是一种供许多用户共享访问的资源。如何保证数据并发访问的一致性、有效性,是所有数据库必须解决的一个问题,锁的冲突也是影响数据库并发访问性能的一个重要因素。从这一角度来说,锁对于数据库而言就显得尤为重要。本文将带领大家一起深入领略Mysql锁的各种风采。 表锁 表级锁是mysql锁中粒度最大的一种锁,表示当前的操作对整张表加锁,资源开销比行锁少,不会出现死锁的情况,但是发生锁冲突的概率…
Leave a Comment1. 索引是什么? 1.1. 索引是什么 1.1.1.索引图解 维基百科对数据库索引的定义: 数据库索引,是数据库管理系统(DBMS)中一个排序的数据结构,以协助快速查询、更新数据库表中数据。 怎么理解这个定义呢? 首先数据是以文件的形式存放在磁盘上面的,每一行数据都有它的磁盘地址。如果没有索引的话,要从 500 万行数据里面检索一条数据,只能依次遍历这张表的全部数据,直到找到这条数据。 但是有了…
Leave a CommentMySQL 的工作流程 1.一条查询 SQL 语句是如何执行的 我们的程序或者工具要操作数据库,第一步要做什么事情? 跟数据库建立连接。 1.1. 通信协议 首先,MySQL 必须要运行一个服务,监听默认的 3306 端口。 在我们开发系统跟第三方对接的时候,必须要弄清楚的有两件事。 第一个就是通信协议,比如我们是用 HTTP 还是 WebService 还是 TCP? 第二个是消息格式,比如我们…
Leave a Comment新装MySQL,始终无法远程链接,提示链接被拒绝,类似密码错误的那种。 尝试几次修改了密码和Host,并且也使用的是remote账号,还是不能登录。 偶然间发现,好像启用了ssl证书认证。 现在需要帮他去掉: 参考资料: https://dev.mysql.com/doc/refman/8.0/en/alter-user.html
Leave a Comment服务器意外掉电,数据库无法启动,启动日志报错,大概提示是上一次没有正常关机,可能有文件损坏,日志还提示需要你自己查查资料,看看怎么恢复数据库。 https://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html 大概意思是mysql的自动恢复失败了,你需要在mysql的配置里面启用强制恢复模式。 官方文档写的很清楚,默认这个值是…
Leave a Comment