几百w条记录,十几个字段,没有建索引;
查询几百条记录;
如何更快查询?

解决方案 »

  1.   

    没有建索引。这让mysql情何以堪
      

  2.   

    不仅仅是说查询优化吧,优化是全方位的,就如同人的健康一样。
    除了MySQL参考手册中说的,还有一篇文章《MySQL 建表的优化策略 小结》参考一下。
    考虑以下措施:
    1. 建索引
    2. 表分区
    3. 优化查询,按手册上说,把where中最具筛选效果的条件放在后面
    4. 考虑把表按表安段的,常用与不常用,固定表段与动态长度(主要是MyISAM表),大字段与小字段等条件拆分成两个或多个表(innodb建议采用独立表空间,位于不同的磁盘),当然,这会影响使用,比如程序可能要重写。
    5. 其它优化,比如MySQL启动参数中设置为适合较大的库
      

  3.   

    Sorry, 我已经对这个找不出证据,刚才粗略找了一下《MySQL reference manual》,没有发现。我记得这是在多年前的版本的手册上看到的。我上面描述得不准确,应该是多个And条件,把最具筛选能力的放在后面。
    可能是我记错了,但这种可能性不大,因为当时我是打印下来看了多遍的;也可能是我英语太菜,理解错了,当时没有中文版在manual。
    更大的可能性是MySQL已经做了自动优化,所以把手册里的内容也改了。
    我还记得当时的手册里还有好大的篇幅来讲MySQL相对PostgreSQL的优势,把MySQL的手册从头到尾看过几遍,不过是比较老的版本。
      

  4.   

    学习,准备看下mysql手册了!