小议mysql变量及其优化
分类: MySQL基础知识 | 发布: OurMySQL | 来源:TaobaoArchitectureTeam
标签: 变量
mysql里的变量分系统变量和用户变量。
mysql里的变量分系统变量和用户变量。
以上两种方法,一种是老方法,另外一种是改进的方法。两种方法各有自己的优缺点。第一种方法,对sort_buffer_size的占用主要是排序的字段以及一个row pointer,这种方式对排序内存的占用较少,可以有效的减少磁盘排序,但坏处也相当的明显,要对表进行两次扫描,第二次是要根据排好序的字段的row pointer指针回表取数据,这种方式,随着排序行数的加大,对时间的消耗将会变得无法忍受(类似于oracle的nested loop)。老方法受到两个参数的影响:sort buffer size以及read_rnd_buffer_size。
如果采用改进型方法,这种新方法,只会扫描表一次,由于在一次扫描表时,取出了查询所有需要的字段,不仅包括排序字段,全都要放在排序内存(sort buffer)里,对排序内存的需求量比较大一些,如果是对少量结果集进行排序,这种新方法与老方法的性能差异并不会太明显(此前提是在并发量较低的情况下,如果这样的排序的SQL执行频率较高,那么新方法相对老方法,优势也比较明显),因为老方法在经过第一次数据扫描后,需要排序的少量的行都在内存里,第二次也只是到内存里取,这个速度相对来说,还是比较快的。如果是大量行的排序,新方法的优势便会体现出来。
对于少量行的排序,这个工作,还是交给应用层来做最合适,也多不了几行代码。
从去年开始,就陆陆续续的参加了一些数据中心的会议,大部分的会议,其实都是在借数据中心之名推销自己的产品了。不过,其中也有一些还不错的,大致上反映了目前数据中心所遇到的问题。
国内数据中心与国外的数据中心还是有比较大的差异,这里我们只看国内的数据中心,国内的数据中心目前遇到的问题,其实都是大同小异,不外乎就是如下几种: