mysql
Helios丶
Easier said than done!
展开
-
MYSQL sql的技巧与避坑
mysql 写sql的一些技巧和坑原创 2023-07-12 18:43:14 · 14908 阅读 · 2 评论 -
msyql慢查询相关
mysql慢查询参数,查看方式原创 2022-12-29 17:52:56 · 439 阅读 · 0 评论 -
建表的时候需要考虑什么
经验1:独立性一张表如果在业务上比较独立,即只用来单表查询,考虑在哪个字段上加索引即可。但是如果要和其他表连接查询,要考虑被连接的表的大小,联表以后的查询速度,那么回到联表的根源上,当然是要查被连的那张表的字段,这时候为了不连表,可以在新表上适当冗余。示例:# a表为新表,b表为千万级表select count(*) from a join b on a.b_id = b.b_id where b.record_id = ?;# 改进,给a表加record_id, 速度会快不少select c原创 2022-03-18 15:41:01 · 400 阅读 · 0 评论 -
磁盘满了导致JTA事务无法提交
线上有一个项目启动,刷了大量日志,把磁盘写满了,然后服务出问题了;清磁盘,重启就解决了:org.springframework.transaction.TransactionSystemException: JTA failure on commit; nested exception is com.atomikos.icatch.jta.ExtendedSystemException: Error in commit: could not flush state image java.io.IOExce原创 2022-03-03 17:30:40 · 406 阅读 · 0 评论 -
mysql in 查询慢的问题
线上某系统遇到了in查询慢的问题,而且in里面的元素只有10个,百思不得其解,1ms的响应时间,加了这个sql为何变成了200ms,随后破案了。因为mysql有个系统参数range_eq_range_index_dive_limit,5.6版本默认为10,超过10以后可能导致走错误的执行计划,5.7默认为200,具体可看mysql官方文档,这里提供一个in查询慢的可能原因。...原创 2022-02-25 11:30:40 · 4657 阅读 · 3 评论 -
批量更新数据的方案
批量更新数据首先要分页查询出来,那么有一个问题,如何去查?起初我的sql是这样的:#先查出总数,分页select count(*) from t where status = 1;#过程如下select id,name from t where status = 2 order by id limit 0, 100;select id,name from t where status = 2 order by id limit 100, 100;使用上面的语句发现问题,两次分页查询之间没有关原创 2021-12-30 13:34:30 · 908 阅读 · 0 评论 -
order by 和 limit同用的问题
当使用order by create_time limit 0,10时,发现如果create_time相同时,则随机返回其中一条记录,那么这个分页是无效的,查出来的数据也是不准确的,正确用法是使用唯一字段去order by,如自增id,改为order by id limit 0,10...原创 2021-12-30 13:09:34 · 462 阅读 · 0 评论