MySQl优化

1、硬件
   1.1 io操作程序
   <简单:磁盘写入磁盘读取>
   磁盘性能比较好
   最优:SSD   其次:SATA
   1.2 CPU:标准
   1.3 1G   NIC网卡
2、软件
   2.1 Linux 64位
   2.2 MySQL 64位
   2.3 Linux文件系统管理 ext3 ext4 xfs
3、表设计/字段设计
   3.1三范式
      数据库中很多表设计标准
标准一:1NF[最低要求]
标准二:2NF[高一些]
标准三:3NF[再高一些]

1NF:表中的字段都是单一属性
2NF:实体属性完全依赖主关键字
3NF:不存在非关键字对任一候选关键字有<传递依赖性>

a:表存储引擎(MySQL)
  myisan/innodb/memory
  myisam:简单,查询速度快,不支持事务与外键
  innodb:最佳选择 create table t_user( )engine=innodb;
b:编码
  建议:UTF8
c:表设计上的优化
  1、一个库最多300-400个表
  2、单张表不超过50个纯50个字段
  3、单张表不超过20个char(10)字段
  4、尽量使用最小范围原则  
年龄 name tinyint not null defalut 0
货币 decimal(10,2)高精度浮点数
手机 bigint 8字节
性别 char(1) enum('男','女')
ip地址 char(15) bigint
inet_aton('192.168.10.1');把ip转换成数字
inet_ntoa();把数字转换成ip
d:尽量少用text/bolb类型
varchar() utf8 21000汉字
e:图片不要存储在数据库
f:不要在表中出现null(很难查询优化,添加索引不生效,计算不准确)


   3.2树状结构表设计
国际



id   oname sn   pid{父机构id}  leve1{级别}
1    中国 1    0              0        0
2    江西 1_2  1        1       1
3    广东 1_3  1        1       1
4    赣州 1_2_4 2        2       2
5    定南 1_2_4 4        3       3

   3.3权限管理表设计
   3.4蜜罐设计
   3.5主键设计
4、事务/索引/SQL分析

你可能感兴趣的:(mysql)