码迷,mamicode.com
首页 > 数据库 > 详细

Mysql优化

时间:2018-08-20 01:12:15      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:初始   null   lin   不能   mys   失效   一个   优化   sql优化   

Mysql优化可从四个层面着手:

  1. 表结构的设计
    • 字段类型的选取,尽量考虑使用整型类定义字段,比如在符合范围值的情况下使用tinyint、smallint;甚至可将IP定位为整型(4个字节,32位,IP的每一段刚好可以用8位二进制表示);
    • 如果字段类型为blob/text的列查询较少,而其它字段列有频繁查询,可将这些列分开设计在不同的表里(同一张表缓存查询有较大影响);
    • 与where、group by 和sort by 查询询字段建立适当索引,以下情况不适合建索引
      • CLOB和BLOB类型的数据不宜建索引;
      • 小型表(如300条记录以下的表)不需建索引(如果频繁更新操作会造成额外负担);
      • 查询中很少使用和参考的列不适合建索引;
      • 当修改性能远大于检索性能时不合适建索引
    •  建索引策略:
      • 创建唯一性索引可保证该列字段值的唯一性操作;
      • 逻辑上表空间和索引空间分开,但最好从物理上将索引数据和表数据分开存储;
      • 建索引时,会对表进行全表扫描,并进行排序,所以相应的初始化参数可能需要调整;同时因为会有锁表操作,所以不能在业务对该表进行操作时进行索引创建;
      • Mysql查询每次只能使用一个索引,所以如查询“select * from staff where name=‘XXX‘ and department=‘XXX‘ and age=23”,最好创建复合索引(name+department+age),该索引实际上是建立了(name+industry+age),(name+industry),(name)三个索引;如果name在查询中最频繁使用,则放在最左边;
      • 索引值不会包含NULL值,所以如果某一复合索引列的值含有NULL值,则列索引会失效;

Mysql优化

标签:初始   null   lin   不能   mys   失效   一个   优化   sql优化   

原文地址:https://www.cnblogs.com/stpan/p/9503358.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!