Mysql的常见错误总结

Mysql的常见错误总结

  1. Data truncation : Out of range value of for column

在执行一个update语句的时候,报错Data truncation : Out of range value of for column ‘CLAIM_QUANTITY’…
update语句是把’CLAIM_QUANTITY’这个字段的值更新为一个大于1一百万的值,报错了,看数据库这个字段的定义:
CLAIM_QUANTITY double(10,4) DEFAULT NULL COMMENT;
double(10,4) 限制这个字段整数位最多为6位,小数后最多4位,所以这个字段存储最大值是999999.9999,所以当存储一个一百万的值,大于的它可以存储的最大值,所以报错了。

  1. MySQL报错packets larger than max_allowed_packet are not allowed

MySQL报错packets larger than max_allowed_packet are not allowed

MySQL根据配置文件会限制Server接受的数据包大小。有时候大的插入和更新会受 max_allowed_packet 参数限制,导致写入或者更新失败
修复方法:
1.修改配置文件my.ini
max_allowed_packet = 10M
2.使用命令修改
mysql> set global max_allowed_packet = 1024102410

  1. mysql大字段如何存储
    mysql大字段如何存储
  1. TEXT、BLOB、JSON类型
    在MySQL中,我们可以使用TEXT和BLOB类型来存储大字段数据。这两种类型的区别在于:TEXT类型是用来存储文本数据,BLOB类型用于存储二进制数据。TEXT可以存储最大长度为65,535个字符的文本数据,而BLOB类型可以存储最大长度为65,535个字节的二进制数据。如果需要存储更大的数据,推荐使用MEDIUMTEXT和MEDIUMBLOB类型,最大长度为16,777,215个字符和字节。如果需要存储更大的数据,可以使用LONGTEXT和LONGBLOB类型,最大长度为4,294,967,295个字符和字节。
    JSON类型实际上是一种文本类型(TEXT),其最大长度受到MySQL文本类型的限制。JSON数据类型的最大存储大小是通过系统变量max_allowed_packet来限制的

  2. 存储文件
    如果需要存储的大字段是文件类型,可以使用MySQL的文件存储功能。这种方法可以提高数据库的读写速度,并且可以减少数据库的存储空间。有两种方式可以存储文件:将文件直接存储到磁盘中,或将文件的地址存储到数据库中,然后在需要时动态加载文件。推荐使用第二种方式,因为这样可以避免数据库中存储大量的二进制数据。

  3. 压缩数据
    如果需要存储的大字段数据较大,可以考虑将该数据进行压缩。MySQL支持多种压缩算法,如Zlib和LZO等。压缩后的数据可以减少磁盘空间的使用,并且可以提高数据库的查询和读取效率。

你可能感兴趣的:(mysql)