大家好,
问题:
目前我有个如何创建索引,才能获取更好的性能的问题。
比如:
  我的表schema如下:
表: table t1, 
列: id, name, user_id, is_public, is_enable, last_modified_at datetime,  view_times int, vote_times int, score double等字段。  
表大小: 100w记录 user_id(对应t_user_info的主键id)需求: 会有按照last_modified_at desc查询, 按照view_times desc查询,按照vote_times desc查询, 按照score desc查询等需求,页面上就是不同的按钮,触发不同的排序。请问,如何设计这个表的索引? 才能获取更好的性能?2. 另外i,mysql的单表达到多少条记录(假设就20~40个字段)的时候,会比较严重的影响性能?3. 如果字段is_public设置为tinyint类型, 那么where子句中用 where is_public is true好呢? 还是where is_public = 1好呢?

解决方案 »

  1.   

    需求: 会有按照last_modified_at desc查询, 按照view_times desc查询,按照vote_times desc查询, 按照score desc查询等需求,页面上就是不同的按钮,触发不同的排序。只能再各个字段建立索引2. 另外i,mysql的单表达到多少条记录(假设就20~40个字段)的时候,会比较严重的影响性能?
    记录无限制  但是一般超过百G的大文件就会影响打开文件的性能3. 如果字段is_public设置为tinyint类型, 那么where子句中用 where is_public is true好呢? 还是where is_public = 1好呢?
    tinyint是数字 最好用=1
      

  2.   

    非常感谢,想多问一句, 某个字段在同一查询的where语句和order by语句中,或者在两个查询中,一个是where,一个是order by。
    此时,如何建立索引比较好呢?