一.基本操做数据库
1.left join性能
根据左表所有显示,右表空显示null优化
2.right joinui
右表所有显示,左表不能对应显示nullspa
3.inner join对象
俩个表共同有才显示排序
select a.* ,AVG(Rawdata) as Avg,a.Value/b.Value as Ratio from vwMTT a inner join vwTemp b on a.guid=b.guid where Probe='11' group by a.id;索引
二.添加索引it
1.索引io
Alter Table 'tableName' ADD INDEX indexName ('column','column1')
2.主键索引
ALTER TABLE 'tableName' ADD PRIMARY KEY ('column')
在表中定义主键将自动建立主键索引,是惟一索引的特定类型
3.惟一索引
ALTER TABLE 'tableName' ADD UNIQUE('column')
不容许其中任何俩行具备相同索引值的索引,列如在员工表中姓上建立惟一索引,则任何俩个员工不能同姓
4.全文索引
ALTER TABLE 'tableName' ADD FULLTEXT('column')
create index index_name1_name2 on tableName(column...)
索引做用
用来定位,提升表的搜索效率而对某些字段中的值创建的目录
聚簇索引:按照数据存放物理位置为顺序,提升多行检索的速度
表中物理顺序与键值对的逻辑顺序相同,一个表中只能有一个汇集索引
非聚簇索引:对单行的检索很快
索引有效性
检查查询的where和join语句,在任意子句中每一列都是索引能够选择的对象
最好避免单个表上有不少索引,最好避免包含共享列的重叠索引
索引肯定
检查某列中惟一数据值的数量,并将该数量和表中的行数进行比较,肯定该列是否合适该列的可选性
索引基本特色
增长数据库的存储空间
插入,修改数据时花费较多的时间
适用
保证每行数据的惟一性,加速表之间的链接,在查询中使用优化隐藏器,加快分组排序
在主键的列上,强制该列的惟一性和组织表中的数据的排列结构
常常须要搜索
常常用在链接的列上,主要是外键
常常须要根据范围进行搜索的列上,由于索引已经排序,指定的范围是连续的
常常须要排序的列
常常使用where子句中的列,加快判断速度
不适用
查询中不多使用
数据值不多
定义为text,image,bit的数据类型的列,取值要么大要么小
修改性能远大于检索性能