zoukankan      html  css  js  c++  java
  • MySQL优化

    MySQL优化

    1. 表方面

    (1) 创建字段时选取合适的长度,例:年龄字段用tinyint或者smallint即可

    (2) 数据类型选取优先度 数字>字符串>text

    (3) 使用数字代替枚举和日期类型

    (4) 字段使用非空设定(值为null时索引不会包含该数据)

    1. 索引方面

    (1) 索引可以加快数据增删改查的速度,但是索引会占据大量的硬盘空间以及在更新数据时会花费大量的时间更新索引,这是一种使用空间换取时间的方法。

    (2) 根据索引特性,创建索引要采取少而精的思路。既能使用一条索引能解决问题的话就不要创建两条,能使用普通、唯一索引解决的话就不要使用联合索引。

    (3) 创建索引时注意索引使用的最左原则,例:创建联合索引abc,使用索引abcab,a是可以使用索引,其他的只(ac,acb)部分使用索引或者不能使用索引

    (4) 创建索引是采取区分度大的字段创建索引

    (5) 同等情况下数字类型的字段要优于字符串型字段

    1. Sql语句方面

    (1) 创建sql语句尽量使用索引,并准守索引的最左原则

    (2) 使用join代替零时建表

    (3) 如果有索引ab,那么a or b b的那一部分查询不会使用索引,必要的话可以建立b的索引

    (4) 使用like查询是 条件前边不要使用%,可能会使索引失效

    (5) 条件左边不要使用运算函数,会使索引失效

    (6) 在查询中避免使用函数,提高数据库查询效率

    (7) 不要使用!=,no等否操作,会使索引失效

    (8) 使用inbetweenunion等方式优化and操作

    (9) 避免隐式转换,既用’1’查询数字1,可能会导致索引失效

    (10) 使用explain去分析sql语句的性能

    (11) 优化limit查询,limit的数越大io占用越多

    1. 分表分库分区和集群方面

    (1) 分表提高了单标的并发能量和磁盘的io性能。分区提高了磁盘的io

    (2) 分库主要是为了突破的单机的性能限制

    (3) 使用集群可以加强服务的可用性,提高并发性

    ① 双主 高可用

    ② Mha pxc高可用 高并发

  • 相关阅读:
    设计一个安全邮件传输系统
    2014(2)系统规划,可行性分析,成本效益分析
    2014(1)需求工程,需求获取
    公务员的福利政策
    2015(5)系统设计
    程序猿媛 九:Adroid zxing 二维码3.1集成(源码无删减)
    Android API
    [Android]利用run-as命令在不root情况下读取data下面的数据
    Android实用代码七段(五)
    Android实用代码七段(四)
  • 原文地址:https://www.cnblogs.com/fanhuo/p/9867159.html
Copyright © 2011-2022 走看看