zoukankan      html  css  js  c++  java
  • 数据库调优教程(七)索引的代价

    三、           索引


    4.      索引的代价

    前面几讲介绍了索引在提高性能方面的威力以及如何使用索引,但是索引也是有开销的

    1)    占用磁盘空间

    如前面所述,索引是有开销的,表现在添加索引后.ibd文件(innodb引擎)或者.myi文件(myisam引擎)会变大。


    2)    导致dml操作速度变慢

    添加索引后之所以会快,是因为表依据索引对数据按某种算法(二叉树等)进行排序,所以删除、增加、插入后二叉树要重新排序,导致执行效率降低。

     

    此时要看自己的数据库是dml语句执行的多还是dql语句执行的多

    使用以下语句可以查询

     

    查询一共执行了多少次select

    show  status like ‘com_select’

    查询一共执行了多少次insert

    show status like ‘com_insert’

    以此类推

    一般来说,dql语句操作比dml语句要多得多!接近9:1

    既然索引有利有弊,那么怎样人为地控制索引的使用呢?

    强制不使用索引

    select xxx from table ignore index(index_xxx)

    强制使用索引

    select * from table force index(index_xxx)


    本讲结束,下一讲来讲一下如何正确地使用索引。

  • 相关阅读:
    React方法论
    React学习记录
    LeetCode 530. Minimum Absolute Difference in BST
    LeetCode 521. Longest Uncommon Subsequence I
    LeetCode 520. Detect Capital
    LeetCode 516. Longest Palindromic Subsequence
    LeetCode 513. Find Bottom Left Tree Value
    LeetCode 506. Relative Ranks
    LeetCode 504. Base 7
    LeetCode 500. Keyboard Row
  • 原文地址:https://www.cnblogs.com/javdroider/p/5184312.html
Copyright © 2011-2022 走看看