mysql小细节随笔

时间:2021-10-10 11:02:49

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,启动数据库时,忽略与恢复相关的前滚日志