zoukankan      html  css  js  c++  java
  • mysql查询注意事项(查询优化)

    """
    5.注意事项
    数据库表中添加索引后确实会让查询速度起飞,但前提必须是正确的使用索引来查询,如果以错误的方式使用,则即使建立索引也会不奏效。
    即使建立索引,索引也不会生效
    
    1. 避免使用select *
    2. 其他数据库中使用count(1)或count(列) 代替 count(*),而mysql数据库中count(*)经过优化后,效率与前两种基本一样.
    3. 创建表时尽量时 char 代替 varchar
    4. 表的字段顺序固定长度的字段优先
    5. 组合索引代替多个单列索引(经常使用多个条件查询时)
    6. 使用连接(JOIN)来代替子查询(Sub-Queries)
    7. 不要有超过4个以上的表连接(JOIN)
    8. 优先执行那些能够大量减少结果的连接。
    9. 连表时注意条件类型需一致
    10.索引散列值不适合建索引,例:性别不适合
    """

    ’‘’关于查询 SQL: 可通过开启慢查询日志来找出较慢的 SQL。 不做列运算:SELECT id WHERE age + 1 = 10,任何对列的操作都将导致表扫描,它包括数据库教程函数、计算表达式等等,查询时要尽可能将操作移至等号右边。 SQL 语句尽可能简单:一条 SQL只能在一个 CPU 运算;大语句拆小语句,减少锁时间;一条大 SQL 可以堵死整个库。 不用SELECT *。 OR 改写成 IN:OR 的效率是 n 级别,IN 的效率是 log(n) 级别,IN 的个数建议控制在 200 以内。 不用函数和触发器,在应用程序实现。 避免 %xxx 式查询。 少用 JOIN。 使用同类型进行比较,比如用 '123''123' 比,123 和 123 比。 尽量避免在 WHERE 子句中使用!=或<>操作符,否则引擎将放弃使用索引而进行全表扫描。 对于连续数值,使用 BETWEEN 不用 IN:SELECT id FROM t WHERE num BETWEEN 1 AND 5。 列表数据不要拿全表,要使用 LIMIT 来分页,每页数量也不要太大。‘’‘

  • 相关阅读:
    solr一些错误
    maven聚合工程之找不到符号,类等错误
    图片服务器搭建及上传测试,网络配置问题(errno: 111)
    安装Nginx,make时报错:/usr/bin/ld: cannot find -lfdfsclient或者类似找不到-lxxx
    关于PCA算法的学习
    生物信息及开发常用的Linux命令
    05.课程主页面三个接口开发
    04.增加media文件配置
    3.课程相关5张表设计
    2.增加抽象基类
  • 原文地址:https://www.cnblogs.com/jing-yan/p/12600093.html
Copyright © 2011-2022 走看看