mysql 索引

来源:互联网 发布:淘宝买家4钻很厉害吗 编辑:程序博客网 时间:2024/06/18 15:10

name  like   “%李”   不能使用索引


name  like   “李%”  能使用索引



多列索引

必须要使用第一列的时候 才能使用索引 否则失效



or 不能使用索引


A  使用中间表

B 增加冗余字段


插入优化

1、禁用索引,当插入完成之后,在打开索引,。

2、禁用唯一性校验,当插入完成之后,打开这个禁用

3、优化sql语句。使用一个sql语句来 插入全部数据。


分析表

  analyze  table  XXX  分析表

结果:table   op  msg_type   msg_text

检查表

  check table  表名1【表名2】 【option】  执行效率

优化表:

optimize talbe  表名1  表名2 


优化mysql 服务器

1、硬件

2、服务器参数

一般人难以理解,专业DBA才能理解


my_innodb-heavy-4G.ini作为配置文件。


查看InnoDB 表的查询次数和更新次数

show status lke 'Innodb_rows_read'   能看到这个库的 查询次数

show status like 'Innodb_rows_updated'  能看到这个库的 更新次数


分析score

 analyze table score  

分析这个表 


上机操作

1、查看mysql  服务器的连接数、查询次数和慢查询次数

show  status  like 'connections'

show  status like 'com_select'

show status like 'slow_queries'


2、检查scroe 表

check tables score

3、优化表

optimize table score 


1、如何使用查询缓存区?

 查询缓存区可以提高查询速度,这种方式只适用于修改操作少且经常执行相同

的查询操作的情况,默认情况下,查询缓存区是禁止的。因为query_cache_size的默认值

是0;query_cache_size可以设置有效的使用空间,query_cache_type可以设置

查询缓冲区的开启状态,其取值为0,1或者2. 在my.conf或者 my.ini中加入 的语句

query_cache_size=20M

query_cache_type=1

query_cache_type 取值为1时,表示开启查询缓冲区,在查询语句中加上

SQL_NO_CACHE关键字,该查询语句将不在使用查询查询缓冲区。

可以使用FLUSH QUERY CACHED语句来清理查询缓存区的 碎片。



为什么查询语句中的索引没有发挥作用

在很多情况下,虽然查询语句中使用了索引,但是索引并没有发挥作用,例如,在where条件的liake

关键字匹配的字符串以%开头,这种情况下 索引不会起作用

where 条件中使用or 关键字来链接多个查询条件。如果有一个条件没有使用索引

那么其他的索引页不会起作用。如果使用多列索引时,多列索引的第一个字段没有使用

索引,那么这个多列索引也不会起作用,根据这些情况,必须对这些

语句进行相应的优化。。。







0 0