
数据库
周先森x
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CROSS JOIN解决行号问题
原创 2014-07-31 00:36:44 · 361 阅读 · 0 评论 -
【数据库】优化排序 && 高效分页
例子: select <cols> from profiles where sex = 'M' order by rating limit 10; 同时使用了order by,limit,如果没有索引会很慢。而sey的选择又很低,可以增加一些特殊的索引来做排序。例如,创建(sex,rating)索引。原创 2014-09-19 22:43:19 · 1003 阅读 · 0 评论 -
【数据库】查询优化总结
一、合理使用索引 使用原则: 1、经常在查询中作为条件被使用的列,应为其建立索引。 2、频繁进行排序或分组group by 或 order by 操作的列,应为其建立索引。 3、一个列值域很大时,应为其建立索引。 4、如果待排序的列有多个,应在这些列上建立符合索引。 5、参与了连接操作的属性 6、在某一范围内频繁搜索的属性和按照排序顺序平凡检索的属性 7、在where子句中包含的一个关系的多个属性,可以考虑在这些属性上建立多属性索引。 此外,如果数据库文件需要频繁执行精确匹配查询(如等值查询),可考虑建立散原创 2014-09-19 21:09:11 · 904 阅读 · 0 评论 -
【数据库】提高SQL的查询效率
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:原创 2014-09-12 16:06:17 · 315 阅读 · 0 评论 -
【数据库】MySQL的语句执行顺序
MySQL的语句一共分为11步,如下图所标注的那样,最先执行的总是FROM操作,最后执行的是LIMIT操作。其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚拟的表对用户来说是透明的,但是只有最后一个虚拟的表才会被作为结果返回。如果没有在语句中指定某一个子句,那么将会跳过相应的步骤。原创 2014-09-13 00:18:32 · 362 阅读 · 0 评论