1、MyBatis的XML文件不能正常显示,而是显示的文本文件
解决方式:blog.csdn.net/liuxc324/ar…
2、HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=41m16s996ms863µs600ns).
这是一条警告语句,不是错误
英译汉:数据源-检测到线程饥饿或时钟跳动
人话:要么是检测到等待连接的时间过长,造成进饥饿;要么是检测到时钟跳动,反正最后是关闭了数据库连接。
3、mysql数据库中表打不开,读表时一直显示正在载入,卡死不动,无法操作
可能的原因是表死锁,会出现这样的情况,锁不释放,无论多久都读取不了数据,一直加载中!
引起问题的原因:由于在执行大量插入操作的时候意外终止程序之后, MySQl的线程并没有被终止,导致表不能打开和操作\
处理方式: 解决思路就是找到等待的线程并kill
第一步:show processlist
第二步:kill id
4、一条sql语句放入到数据表中,sql显示不全
BUG发现:首先我是用varchar(255)来存放SQL模板和具体SQL的内容。其他项目中所有运行的sql都存放在我这个数据库表中,但是为了不重复插入同个项目同个模板同个具体SQL的内容,因此用到了唯一索引,但是实际运行起来发现同一个具体SQL会插入两次,后来查看数据表发现,插入的具体SQL语句并没有全部插入。
想了想可能是varchar(255)不能存放那么多的数据?但是varchar不是可变长的吗?
我想可能的原因是我在varchar类型的这个字段上建立了索引。
MySQL要求一个行定义长度不能超过 65535 bytes(所有字符串类型字段包括其字段名称占用空间都计算在内, text、blob等大字段类型除外)。所有如果一个表有很多varchar字段的时候,不应该把varchar设置的特别大,会影响后面的字段。
InnoDB存储引擎的表索引的前缀长度最长是767字节(bytes)(前缀长度适用于mysql5.6及以前,后续版本有变化) 。因此如果需要建索引,就不能超过 767 bytes(mysql5.6及以前,后续版本有变化);utf8编码时 255*3=765bytes ,是能建索引情况下的最大值。
解决方法:将varchar(255)改成了varchar(1000)
扩展:
当varchar大于某些数值的时候,其会自动转换为text,大概规则如下:
大于varchar(255)变为 tinytext
大于varchar(500)变为 text
大于varchar(20000)变为 mediumtext
所以对于过大的内容使用varchar和text没有太多区别。
持续更新中........