mysql小细节随笔

本文详细介绍了MySQL中decimal类型的自动处理机制,不同版本下VARCHAR类型的存储差异,以及如何使用自定义排序。此外,还深入探讨了InnoDB的force_recovery选项及其不同级别对应的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1, MySQL decimal(x,y)  存入根据y的下一位四舍五入,查了半天以为是laravel模型做了预处理,结果发现不是,是mysql decimal类型数据自动处理的,有好,也不好,合并订单数据计算会有误差

2,在字符集为UTF-8的情况下:

  • MySQL | ver < 4.1: VARCHAR以字节为单位存储,所以假设全部为常用汉字(UTF-8 3字节编码长度),则VARCHAR(255)共可存放约85个汉字;
  • MySQL | ver >= 4.1: VARCHAR以字符为单位存储,假设输入仍然为常用汉字,则VARCHAR(255)可以存放255个汉字。

 3,自定义排序

select * from driver_log order by field(name,'Suzi','Ben','Henry');  

ORDER BY  CASE WHEN

 

 

innodb_force_recovery默认是0(平常启动不带强制恢复)。大点的数字包含所有小的数的预防措施(也就是说,例如2包含1的所有功能)。如果你备份你的表用4,只有一些崩溃表的数据会丢失,相对来说比较安全。6是最极端的,因为所有的数据库表都处在一种转入B-tree和其他数据结构的废弃状态

 

有下面非0的选项:

   innodb force recovery的6种设置:

1.innodb force recovery=1,即使发现了损坏页面也继续让服务器继续运行,这个选项对于备份或者转存当前数据尤为有用
2.innodb force recovery=2,阻止恢复主线程的运行,如果清除操作会导致服务器挂掉
3.innodb force recovery=3,恢复后不回滚事务
4.innodb force recovery=4,如果插入到缓冲区的合并操作会导致系统崩溃,将不会被执行
5.innodb force recovery=5,启动数据库时,忽略撤消日志
6. innodb force recovery=6,启动数据库时,忽略与恢复相关的前滚日志

转载于:https://www.cnblogs.com/zx-admin/p/8529810.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值