SQL优化基本常识
1.在Where条件中尽量不要在=号左边进行函数、运算符、或表达式计算,如Where DATEDIFF(DD,StartTime,GetDate())=6 ;或Where Num/2=100;
2.在Where中尽量避免出现!=或<>操作符;
3.在Where中尽量避免对字段进行null值判定;
4.使用Like关键字进行模糊查找时,不要使用前置百分号,如Like ‘%123%’;
5.数据库字段的长度尽量的小(保证应用的前提下);
6.不要使用Selecte*,不要使用*号来查询数据;
7.尽量避免使用游标,游标的效率是很差的,可以使用While循环来代替;
8.尽量避免返回大量数据(查询数据(Select)优化,分页处理等);
9.使用Exists代替in和not in;
索引
索引:利用字段的某些属性,快速 的定位数据(磁盘,柱面,磁道,扇区)
1. 什么是索引?
索引就是类似书的目录,提高检索数据的效率。
索引是系统按照某个具体的算法(哈希,散列,二叉树),将目标数据从全部数据里进行提取,维护成一个索引文件,然后系统在进行数据查询的时候,发现如果查询条件刚好满足索引条件,就可以从索引文件中快速的定位的数据所在位置。
mysql中有哪些索引?
主键索引(primary key效率最高的索引)
唯一索引(unique key):不为空的情况下效率最高(在MySQL中为空一般指的是值为NULL)
普通索引(index)对数据没有要求,文件很大,效率比较低
全文索引(fulltext),对整个文章内部进行关键字索引(mysql5.5以后InnoDB支持全文索引)
英文的全文索引很简单:英文单词默认是用空格分离的
中文的全文索引很难:中文的词组成很麻烦,需要利用分词工具(sphinx)
索引的类型有哪几种?
答:索引主要有:
主键索引:(primary key ):数据记录里面不能有null,数据内容不能重复,在一张表里面不能有多个主键索引。
普通索引:(index ):使用字段关键字建立的索引,主要是提高查询速度
唯一索引:(unique key):字段数据是唯一的,数据内容里面能为null,在一张表里面,是可以添加多个唯一索引。
全文索引:(fulltext index):在比较老的版本中,只有myisam引擎支持全文索引,在最新的版本中(可能是mysql.5.6)innodb引擎也支持全文索引,在mysql中全文索引不支持中文。
数据库索引的作用和优点缺点以及索引的11中用法
为什么要创建索引呢?这是因为,创建索引可以大大提高系统的性能。
第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
第二,可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。
第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
第四,