A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1、MySQL优化综合性技术
  • 表的设计合理化(符合3NF,有时也要进行反三范式操作)
  • 添加适当索引
  • 分表技术(水平分割、垂直分割)
  • 主从复制,读写分离
  • 存储过程(模块化编程,可以提高速度)
  • 对MySQL配置优化(配置最大并发数my.ini,调整缓存大小)
  • 系统应用优化等
  • 服务器的硬件优化

2、索引分类
  • 单值索引

  • 一个索引只包含单个列,一个表可以有多个单值索引,一般来说, 一个表建立索引不要超过5个

  • 唯一索引

  • 索引列的值必须唯一,但允许有空值

  • 复合索引

  • 一个索引包含多个列

  • 全文索引

  • MySQL全文检索是利用查询关键字和查询列内容之间的相关度进行检索,可以利用全文索引来提高匹配的速度。

3、MySQL语句正确使用索引
  • 全值匹配(最好)

  • 如:建立了三个索引,查询时最好都使用上三个索引

  • 最佳左前缀法则

  • 如果索引有多列,要遵守最左前缀法则,指的就是从索引的最左列开始 并且不跳过索引中的列

  • 计算、函数、类型转换会导致索引失效
  • 范围条件查询,右边索引失效
  • 使用不等于(!=或者<>)时无法使用索引
  • or引起索引失效
  • like引起索引失效

4、大批量数据分页操作优化
  • 没有优化的查询

  • SELECT * FROM logs1 LIMIT 500000,10;

  • 优化

  • 使用子查询优化方式1

select * from logs1 e inner join (SELECT id from logs1 limit 500000 ,10 ) et on e.id = et.id

    • 使用子查询优化方式2

select * from logs1 where id >=(SELECT id from logs1 limit 500000 , 1) limit 10

    • 使用id限定优化

  • 记录上一页最大的id号 使用范围查询,限制是只能使用于明确知道id的情况,不过一般建立表的时候,都会添加基本的id字段,这为分页查询带来很多便利



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马