![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 74
澎仔
追求卓越技术,不断突破自我的互联网人
展开
-
MySQL的Illegal mix of collations异常解决办法
异常出现原因:sql语句中,不同字符集或者不同排序规则的两个字段做交互操作的时候可能会出现这种异常情况解决办法:彻底解决:两个字段的字符集和排序规则进行统一;有时候我们只是想在阿里云的DMS控制台中,连表操作查询一些数据以作验证的话:可以使用 CONVERT(field USING utf8) 函数将字段进行转码再进行查询;(临时统一两个字段的字符集以及排序规则) SELECT * FROM tradelog l, trade_detail d WHERE CONVERT(l.trad原创 2020-12-27 21:51:41 · 3204 阅读 · 0 评论 -
mysql中的order by
准备条件,创建一个单词表,使用存储过程插入1W行;CREATE TABLE words ( `id` INT ( 11 ) NOT NULL AUTO_INCREMENT, `word` VARCHAR ( 64 ) DEFAULT NULL, PRIMARY KEY ( `id` ) ) ENGINE = INNODB;delimiter;;CREATE PROCEDURE idata () BEGIN DECLARE i INT; START TRANSACTION; SET i =原创 2020-12-08 23:56:23 · 188 阅读 · 0 评论 -
innodb中的change buffer
change buffer(把改变的操作缓存起来)(提升语句执行效率)当需要更新数据页的时候,如果数据页在内存中就直接更新。不在内存中的话,在不影响数据一致性的前提下(行锁竞争引发数据不一致)。innodb会将这些更新操作缓存在change buffer中。(减少磁盘随机读操作)在下次查询需要访问这个数据页的时候,将数据页读入内存,然后执行change buffer中与这个页有关的操作(merge)系统也有后台线程会定期merge,在数据库正常关闭(shutdown)的过程中,也会执行merge操作原创 2020-11-30 23:30:25 · 429 阅读 · 0 评论 -
spring一个非事务方法调用另一个事务方法失效
spring的事务spring提供了许多抽象给数据访问层,使得在不同框架当中使用一样的方式进行数据操作。其实就包含事务抽象(一致的事务模型)spring事务抽象的核心接口PlatformTransactionManager 平台事务管理器,这个事务管理器当中会定义一系列事务操作、查询的方法(commit、rollback、getTransaction等)其中getTransaction等会返回一个TrancactionStatus(代表这个事务的一些状态值)spring通过这个事务管理器给各个平台框原创 2020-11-30 00:22:18 · 1092 阅读 · 0 评论 -
请在update语句中加上limit
MySQL版本 mysql-8.0.19-winx64今天看到博文说mysql使用update语句的时候尽量加上limit,因为当更新语句中的字段没有索引的时候,如果没有使用limit的话会锁全表;而如果使用了limit的话,mysql会通过主键索引找到对应的行记录,此时只会给索引搜寻过的行加上行锁,并不会把后面的行给锁住;亲自测试了一下发现并不一样(可能是MySQL版本不一样)CREATE TABLE `person` ( `id` int unsigned NOT NULL AUTO_INCR原创 2020-11-27 00:17:45 · 10593 阅读 · 2 评论 -
为什么有binlog还要redo log
mysql中redo log和binlog的区别什么是WALMySQL中更新一条语句的流程两阶段提交中,MySQL异常重启(crash),是如何保证数据完整性的?为什么不仅使用binlog来支持崩溃恢复,并且还能支持归档为什么不仅使用redo log,不要binlog可以吗?redo log到底是什么,数据最终落盘,是从redo log更新来的吗?redo log buffer是什么?与redo log持久化有关的配置参数innodb_flush_log_at_trx_commit与binlog持久化有关的原创 2020-11-25 21:20:43 · 5023 阅读 · 14 评论