select * from poi where instr(name,'中信广场')>0;
请问上面的如何优化。谢谢

解决方案 »

  1.   

    如果instr(name,'中信广场')>0中的中信广场是一个固定值,你可以在POI表上建立一个函数索引
      

  2.   

    当数据量很大的时候,在操作符的左边最好不要用函数。如果你的数据表有100w条记录,那么你上面那个instr函数就会运行100w次,性能不可能好的。你不妨考虑使用全文索引,看看是否能解决你的问题:
    http://blog.csdn.net/pathuang68/archive/2009/04/20/4093665.aspx
      

  3.   

    select * from poi where name like '%中信广场%';
      

  4.   


    建立全文索引,然后用如下sql语句:
    select * from poi where name like '%中信广场%' 
     
      

  5.   

    如果instr(name,'中信广场')>0中的中信广场是一个固定值,你可以在POI表上建立一个函数索引