MySQL系列(三)--数据库结构优化】的更多相关文章

良好的数据库逻辑设计和物理设计是数据库高性能的基础,所以对于数据库结构优化是很有必要的 数据库结构优化目的: 1.减少数据的冗余 2.尽量避免在数据插入.删除和更新异常 例如:有一张设计不得当的学生选课表 CREATE TABLE selectcourse( stu_no INT(11) NOT NULL COMMENT '学号', stu_name VARCHAR(10) NOT NULL COMMENT '学生姓名', birth_date TIMESTAMP NOT NULL DEFAUL…
4-1 数据库结构优化介绍 良好的数据库逻辑设计和物理设计是数据库获得高性能的基础. 1.减少不必要的数据冗余. 2.尽量避免数据维护中出现更新,插入和删除异常. 插入异常:如果表中的某个实体随着另一个实体而存在.   更新异常:如果更改表中的某个实体的单独属性时,需要对多行进行更新. 删除异常:如果删除表中的某一实体则会导致其他实体的消失. 3.节约数据存储空间 4.提高查询效率 show create table selectcourse\G select * from selectcour…
数据库结构优化 优化数据大小 使表占用尽量少的磁盘空间.减少磁盘I/O次数及读取数据量是提升性能的基础原则.表越小,数据读写处理时则需要更少的内存,同时,小表的索引占用也相对小,索引处理也更加快速. MySQL支持不同类型的存储引擎和行格式,针对不同类型,业务需求的表应该设置合适的存储引擎及索引方法.表设置建议如下: 表列 为列选择最合适(通常最小)的数据类型.MySQL 具有许多不同列类型以最大化的减少磁盘和内存占用.例如,使用足够小的整型来表示小范围的小整型数据.MEDIUMINT 通常是一…
一.选择合适的数据类型    1.使用可存下数据的最小的数据类型    2.使用简单地数据类型,Int<varchar    3.尽可能使用not null定义字段    4.尽量少用text,非用不可最好分表    用Int存储日期时间    from_unixtime()可将Int类型的时间戳转换为时间格式    unix_timestamp()可将时间格式转换为Int类型    存储IP地址——bigInt    利用inet_aton(),inet_ntoa()转换 二.范式设计   …
数据库设计的步骤 我们大多使用mysql 设计三范式 设置时区  …
系列文章 一.原来一条select语句在MySQL是这样执行的<死磕MySQL系列 一> 二.一生挚友redo log.binlog<死磕MySQL系列 二> 前言 最近数据库老是出现下面死锁情况,借着这俩种情况出发详细的理解一下MySQL中的锁. Lock wait timeout exceeded; try restarting transaction Deadlock found when trying to get lock; try restarting transact…
一.几个基本概念 GCRoots对象都有哪些 所有正在运行的线程的栈上的引用变量.所有的全局变量.所有ClassLoader... 1.System Class.2.JNI Local3.JNI Global4.Thread Block5.Busy Monitor6.Java Local7.Native Stack8.Unfinalized9.Unreachable10.Java Stack Frame11.Unknown 栈帧的解释 Java虚拟机栈(Java Virtual Machine…
1.选择合适的数据类型 一.选择能够存下数据类型最小的数据类型 二.可以使用简单的数据类型.int  要比varchar在MySQL处理上简单 三.尽可能的使用not null  定义字段 四.尽量少用txt类型,非用不可时考虑分表. 五.举例: 使用int类型存储日期时间,利用FROM_UNIXTIME(),UNIX_TIMESEAMP()两个函数转换 mysql> SELECT FROM_UNIXTIME(1234567890, '%Y-%m-%d %H:%i:%S'); +--------…
由于MySQL数据库是基于行(Row)存储的数据库,而数据库操作 IO 的时候是以 page(block)的方式,也就是说,如果我们每条记录所占用的空间量减小,就会使每个page中可存放的数据行数增大,那么每次 IO 可访问的行数也就增多了.反过来说,处理相同行数的数据,需要访问的 page 就会减少,也就是 IO 操作次数降低,直接提升性能.此外,由于我们的内存是有限的,增加每个page中存放的数据行数,就等于增加每个内存块的缓存数据量,同时还会提升内存换中数据命中的几率,也就是缓存命中率.…
原则: 设计表结构,字段类型,最小化磁盘存储的空间,减少IO.数据库操作中最为耗时的操作就是 IO 处理,大部分数据库操作 90% 以上的时间都花在了 IO 读写上面.所以尽可能减少 IO 读写量,可以在很大程度上提高数据库操作的性能. 选择合适的存储引擎,不过现在都是默认的用innodb 表数据大小优化 表字段 尽量选择有效的最小的数据类型. 数字类型: 1.非万不得已不要使用DOUBLE,不仅仅只是存储长度的问题,同时还会存在精确性的问题.同样,固定精度的小数,也不建议使用DECIMAL,建…