【MySQL】有个案例,如何创建更好的索引才能获取更好的性能?
大家好,
问题:
目前我有个如何创建索引,才能获取更好的性能的问题。
比如:
我的表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好呢?
------解决方案--------------------
需求: 会有按照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