面对 MySQL 查询索引失效,程序员的六大优化技巧!( 三 )

  • 数据类型越小越简单的索引更好 。越小越简单的数据类型通常在磁盘、内存和cpu缓存中需要的空间更少 , 处理起来更快 。
  • 尽量避免NULL: 在MySQL中 , 含有空值的列很难进行查询优化 , 因为它们使得索引、索引的统计信息以及比较运算更加复杂 。可以采用0、一个特殊的值或者一个空串代替空值。
  • 在实际应用的过程中 , mysql并不总会选择合理的索引进行查询 , 此时便可以使用force index(index name)来强制告诉mysql选择哪一个索引 。使用一下sql查询:
    desc select* fromt_test3 forceINDEX(t_test_name) wherenamein( 'a', 'b');
    其对应的执行计划与上图的执行计划相同 , 采用的是sql中指定的索引 。
    因此我们在一些情况下首先可以适当的使用force index(indexname) 强制告诉mysql使用什么索引 。force index( index name )指令可以指定本次查询使用哪个索引!一条sql只会用到一个索引 , mysql优化器会计算出一个合适的索引 , 但是这个索引不一定是最好的 。force index指令可以避免MySql优化器用到了一个低效的索引 , 并可以提高sql的执行效率 。




    推荐阅读