这几天刚解决了一个varchar 引起的性能问题,简单的就是,对于一个varchar(1000),executor在没拿到存储引擎存储的数据之前,并不会知道我这一行拿出来的数据到底有多长,可能长度只有1,可能长度是500,那怎么办呢,那就只能先把最大空间分配好了,避免放不下的问题发生,这样实际上对于真实数据较短的varchar确实会造成空间的浪费。
举例:如果我有1000个varchar(1000),但是每个只存一个字符,那么真实数据量其实只有1K,但是我却需要1M的内存去适应他。
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有