在MySQL中,子字符串(1200)是否比获取文本列的完整值更好?
假设你的表格上有一个文本栏,可以是巨大的/段落长度的咆哮,也可以只有几行句子 性能方面/服务器负载方面,执行以下操作是否更好:在MySQL中,子字符串(1200)是否比获取文本列的完整值更好?,mysql,database,performance,query-optimization,substring,Mysql,Database,Performance,Query Optimization,Substring,假设你的表格上有一个文本栏,可以是巨大的/段落长度的咆哮,也可以只有几行句子 性能方面/服务器负载方面,执行以下操作是否更好: SELECT SUBSTRING( myTxtColumn, 1, 200) FROM myTable AS myTxtColumn 或者做: SELECT myTxtColumn FROM myTable 以下哪项查询会增加服务器的负载 我很好奇,对于服务器来说,获取列的完整值是否比在其上执行子字符串()更容易,或者子字符串()是否更容易,因为它只返回前200个字
SELECT SUBSTRING( myTxtColumn, 1, 200) FROM myTable AS myTxtColumn
或者做:
SELECT myTxtColumn FROM myTable
以下哪项查询会增加服务器的负载
我很好奇,对于服务器来说,获取列的完整值是否比在其上执行子字符串()更容易,或者子字符串()是否更容易,因为它只返回前200个字符,而不是数KB长的文本值。我会谨慎行事,使用子字符串。您的第一个查询可能需要在对其执行子字符串之前读取整个字符串(我怀疑mysql比这更聪明,但谁知道呢)。您的第二个查询肯定必须读取整个字符串并通过网络发送。cpu与网络流量(也可能是磁盘I/O,但如果是热页,则应缓存在内存中);建议您进行基准测试…我想两者没有区别,因为两者都需要磁盘搜索