什么是trim函数 trim函数的语法和作用【详解】

什么是trim函数 trim函数的语法和作用【详解】

    固态硬盘的参数中有一个trim功能,这个功能是什么,SSD硬盘的TRIM功能有什么作用?

  PHP4,PHP5中的trim():

  功能除去字符串开头和末尾的空格或其他字符。函数执行成功时返回删除了string字符串首部和尾部空格的字符串,发生错误时返回空字符串("")。如果任何参数的值为NULL,Trim()函数返回NULL。

函数语法

  TRIM([[位置] [要移除的字串] FROM ] 字串): [位置] 的可能值为 LEADING (起头),TRAILING (结尾),or BOTH (起头及结尾)。这个函数将把 [要移除的字串] 从字串的起头、结尾,或是起头及结尾移除。如果我们没有列出 [要移除的字串] 是什么的话,那空白就会被移除。

  LTRIM(字串): 将所有字串起头的空白移除。

  RTRIM(字串): 将所有字串结尾的空白移除。

 例1:

  SELECT TRIM(' Sample ');

 结果:

  'Sample'

  例2:

  SELECT LTRIM(' Sample ');

  结果:

  'Sample '

  例3:

  SELECT RTRIM(' Sample ');

  结果:

  ' Sample'

  2,Trim又叫Disable Delete Notify。Trim启用的验证方法:用管理员权限打开CMD,输入fsutil behavior QUERY DisableDeleteNotify

  DisableDeleteNotify = 0 Trim启用

  DisableDeleteNotify = 1 Trim未启用

 Trim的作用

  原本在机械硬盘上,写入数据时,Windows会通知硬盘先将以前的擦除,再将新的数据写入到磁盘中。而在删除数据时,Windows只会在此处做个标记,说明这里应该是没有东西了,等到真正要写入数据时再来真正删除,并且做标记这个动作会保留在磁盘缓存中,等到磁盘空闲时再执行。

  这样一来,磁盘需要更多的时间来执行以上操作,速度当然会慢下来。

  而当Windows识别到SSD并确认SSD支持Trim后,在删除数据时,会不向硬盘通知删除指令,只使用Volume Bitmap来记住这里的数据已经删除。Volume Bitmap只是一个磁盘快照,其建立速度比直接读写硬盘去标记删除区域要快得多。这一步就已经省下一大笔时间了。然后再是写入数据的时候,由于NAND闪存保存数据是纯粹的数字形式,因此可以直接根据Volume Bitmap的情况,向快照中已删除的区块写入新的数据,而不用花时间去擦除原本的数据。

  以上就是Trim的原理以及真正作用。

 验证方法

  win7下Trim验证方法

  其实Windows 7默认状态下Trim指令是开启的,如果想查询目前的Trim指令状态,我们可以在管理员权限下,进入命令提示符界面,输入“fsutil behavior QUERY DisableDeleteNotify”,之后会得到相关查询状态的反馈。在这里,提示为“DisableDeleteNotify = 0”即Trim指令已启用;提示为“DisableDeleteNotify = 1”即为Trim指令未启用。

  并不是操作系统提供Trim指令支持,所有SSD都能享受到Trim技术所带来的好处,这还需要固态硬盘的固件支持才能实现。一些主要的固态硬盘主控芯片厂商已经提供了支持Trim的固件(例如英特尔"X25-M G2"),不过也有厂商开发出不依赖操作系统的垃圾回收技术,通过回收不再使用的闪存区块加入负载平衡算法,防止固态硬盘在长期使用后速度下滑,并延长闪存使用寿命,过程完全在固态硬盘内部完成。

推荐阅读