高校后勤网站建设要求及内容,凯里网络公司,在阿里国际站做的网站,布吉附近做网站MYSQL数据库调优
索引
1、对于常用的查询字段加索引#xff0c;但如果常用字段只有几个常量值就不需要加索引#xff0c;或者使用索引会失效的情况#xff1b;
2、索引失效的情况#xff1a;
1、索引列使用函数#xff0c;计算#xff08;加减乘除等#xff09; …MYSQL数据库调优
索引
1、对于常用的查询字段加索引但如果常用字段只有几个常量值就不需要加索引或者使用索引会失效的情况
2、索引失效的情况
1、索引列使用函数计算加减乘除等
2、like使用左模糊查询 ’%qwew’
3、组合索引不使用第一列
4、! not
5、使用OR 条件查询 前后没有同时使用索引
6、字段类型不同
7、比较两列值 where 索引列A索引列B
8、order by 单独使用
等等
3、强制使用索引 force index(索引名) 例SELECT * FROM subscription force index(expires_time) order by expires_time desc(order by单独使用索引失效)
4、查看索引的的生效情况在查询语句前加 EXPLAIN(仅对 select 生效)
id表示sql的执行顺序sql中会有子查询id越大优先级越高同级别在上而下执行
select_type
SIMPLE查询中不包含子查询或者UNION
PRIMARY查询中包含子查询最外层查询则被标记为PRIMARY
SUBQUERY在SELECT或WHERE列表中包含了子查询该子查询被标记为SUBQUERY
DERIVED在FROM列表中包含的子查询被标记为DERIVED衍生
UNION第二个SELECT出现在UNION之后则被标记为UNION若UNION包含在 FROM 子句的子查询中外层SELECT将被标记为DERIVED
UNION RESULT从UNION表获取结果的SELECT
等等
type访问类型 ALL(全表查询) index(走索引) range(范围查询) 等等
possible_keys可能使用的索引
key真正使用到的索引
key_len索引使用的字节数
ref连接匹配条件
rows查询记录大概需要查询的行数
filtered返回结果的行占需要读到的行(rows)的百分比
Extra额外信息
数据库配置文件优化
查看命令
show status 看系统的资源
show variables 看变量在my.cnf配置文件里定义的
show warnings 查看最近一个sql语句产生的错误警告看其他的需要看.err日志
show processlist显示系统中正在运行的所有进程。
my.cnf配置(针对innodb引擎)
query_cache_size 128M //查询增加缓存由于服务中的很多查询可能在一段时间内结果都是一样的增加缓存后能大大降低查询时间如果结果有更新则会去查询数据库
query_cache_type 1 //开启查询缓存
query_cache_limit 50M //单个查询允许的最大的缓存内存超过限制则不会缓存
thread_cache_size 20 //缓存空闲的线程
innodb_buffer_pool_size 4G //指定大小的内存来缓冲数据和索引,根据MySQL手册,建议设置为服务器内存的50%MYISAM引擎使用 key_buffer_size
innodb_log_buffer_size 32M //redo log 的写缓存
innodb_log_file_size 128M //日志文件大小 更大的设置可以提高性能但也会增加恢复故障数据库所需的时间
innodb_log_files_in_group 3 //可以以循环方式将日志文件写到多个文件
其他大多数配置使用默认参数即可