mysql数据库的索引是什么?怎么优化?

- 编辑:admin -

mysql数据库的索引是什么?怎么优化?

   索引相近大学图书馆建书目索引,能够提升数据查找的高效率,减少数据库的IO成本费。MySQL在三百万条纪录上下特性逐渐慢慢降低,尽管官方网文本文档说500~800w纪录,因此 大数据量创建索引是十分必须的。MySQL出示了Explain,用以表明SQL执行的详细资料,能够开展索引的提升。

   一、造成 SQL执行慢的缘故

   1.硬件配置难题。如互联网速度比较慢,内存不足,I/O吞吐量小,磁盘室内空间满了等。

   2.沒有索引或是索引无效。(一般在互联网公司,DBA会在深夜把表锁了,再次创建一遍索引,由于如果你删掉某一数据的情况下,索引的树结构也不详细了。因此 互联网公司的数据做的是假删掉.一是为了更好地做数据剖析,二是为了更好地不毁坏索引 )

   3.数据太多(分库分表)

   4.网络服务器调优及每个基本参数(调节)

   二、剖析缘故时,一定要找突破口

   1.先观查,打开慢查询日志,设定相对的阀值(例如超出3秒便是慢SQL),在工作环境跑上一一天之后,看一下什么SQL较慢。

   2.Explain和慢SQL剖析。例如SQL句子写的烂,索引沒有或无效,关联查询过多(有时是设计方案缺点或是不可以的要求)这些。

   3.Show Profile是比Explain更近一步的执行关键点,能够查看到执行每一个SQL都做了啥事,这种事各自花了是多少秒。

   4.找DBA或是运维管理对MySQL开展网络服务器的主要参数调优。

     三、什么叫索引?

   MySQL官方网站对数据库索引的定义为:数据库索引(Index)是帮助MySQL效率高得到数据信息的数据信息结构。我们可以简易了解为:迅速搜索排好序的一种数据构造。Mysql索引关键有二种构造:B Tree索引和Hash索引。大家平时常说的索引,要是没有尤其指出,一般全是指B树结构机构的索引(B Tree索引)。

   最表层淡蓝色磁盘块1里有数据17、35(暗蓝色)和指针P1、P2、P3(淡黄色)。P1指针表明低于17的磁盘块,P2是在17-35中间,P3偏向超过35的磁盘块。真正数据存有于子叶连接点也就是最下边的一层3、5、9、10、13……非叶子节点不储存真正的数据,只储存引导检索方位的数据项,如17、35。

   搜索全过程:比如检索28数据项,最先载入磁盘块1到运行内存中,发生一次I/O,用二分查找明确在P2指针。然后发觉28在26和30中间,根据P2指针的详细地址载入磁盘块3到运行内存,发生第二次I/O。用一样的方法寻找磁盘块8,发生第三次I/O。

   真正的状况是,上边3层的B Tree能够表明几百万的数据,几百万的数据只发生了三次I/O而不是几百万次I/O,時间提高是极大的。