1、索引
2、优化SELECT语句

解决方案 »

  1.   

    1、创建索引
    2、增加服务器的吞吐量。一、说一下创建索引,不是创建索引就有速度的提高。
    首先建立索引要合理,索引文件要占用磁盘空间,索引文件可能比数据文件更快的达到最大的文件尺寸。其次,索引文件加快了检索,但增加了插入和删除、以及更新索引列中的时间,因为写操作不进涉及数据行,而且还常常涉及索引,一个表拥有索引过多,则写操作的平均性能下降就越大。
    以下是怎样确定索引和挑选索引列的准则:a.索引的索引列,不一定时所要选择的列(换句话说,最适合索引的列是出现在WHERE子句中的列,或连接子句中指定的列,而不是出现在SELECT关键字后的选择列表中的列)
    b.使用唯一索引(对于唯一值的列,索引效果最好,而具有多个重复值的列,索引效果差。)
    c.使用短索引(如果对字符串进行索引,应该指定以前缀长度,只要有可能就要这样做。)
    d.利用最左前缀(在创建n列的索引时,实际是创建了Mysql可利用的n个索引。多列索引可起几个索引的作用,因为可利用索引列中最左边的列集来匹配行。注意:mysql不能使用不涉及做前缀的索引。)
    e.不要过多索引(不要以为索引越多越好,什么都索引是错误的,只保持所需的索引有利于查询。)
    f.考虑在列上进行的比较类型(索引可用于"<"、"<="、"="、">="、">"和BETWEEN运算,在模式具有一个直接列前缀时,索引也用于LIKE运算。)二、对容易产生碎片的表使用OPTIMIZE TABLE(经常用OPTIMIZE TABLE 有助于保持性能不下将。)二、增加服务器的吞吐量
    增加内存是个很好的选择
      

  2.   

    不好意思打错了几个字:a.搜索的索引列,不一定是要选择的列(换句话说,最适合索引的列是出现在WHERE子句中的列,或连接子句中指定的列,而不是出现在SELECT关键字后的选择列表中的列)