索引优化,优化查询速度
-------------------------------------------------------
count,统计一个表总计行数
myisam储存引擎有自带计数器,使用count时直接提取计数器值速度快
innodb使用count时需要全表扫面,每行效率差
--------------------------------------------------------
二进制多媒体数据,不要存在数据库中
超大的文本数据,也不要存在数据库中
不同SQL语句也会影响到执行效率
--------------------------------------------------------
索引
explain 模拟语句查询状态,提供数据【经常使用的命令】
我的条件是stuname=gao 因为没有在stuname创建索引所以提示是null
索引是帮助mysql搞笑获取数据的数据结构,
B-tree B树结构
索引减少IO用量,
创建银锁需要找索引价值高的,相对较低的没有必要创建,例如性别就没有任何创建索引价值,重复值过多
索引类型
1,普通索引
最基本的索引,没有任何限制
2,唯一索引
一列值必须唯一,但是可以为空null
3,组合索引
组合索引就是有多个列值成为索引组合,但是有一个最左前缀,想使用组合索引,必须要求中有组合索引中最左侧的值否则不会使用
4,全文索引
字段类型包括char、varchar、text、
不过对于大容量的数据表,生成一个全文索引是个非常消耗时间的硬盘空间的做法
索引命令使用
create index indexname on 表名【哪列】 普通索引
create unique index indexname on 表名【列值】 唯一索引 unique
create index indexname on 表名【哪列,哪列,哪列,哪列】 组合索引
create fulltext index indexname on 表名【哪列】 全文索引
--------------------------------------------------------------------------------------------------------
检查索引
show index from 表名;
show keys from 表名;
查看表都有什么表名
--------------------------------------------------------------------------------------------------------------
有的时候mysql性能降低就是IO瓶颈,这个没有办法,有的时候可以通过索引解决,有的时候只能更新硬件配置