2016 - 2024

感恩一路有你

mysql用datetime还是timestamp 如何构建高性能MySQL?

浏览量:4723 时间:2023-04-11 14:52:44 作者:采采

如何构建高性能MySQL?

可以从以下几个角度来说。

第一,设计时间。

设计时有几个方面可以优化。

A.表格引擎的选择。

mysql最大的一个特点就是可以根据表格选择自己的表格引擎。不同引擎的区别在于事务支持的粒度、数据存储格式和模式等。mysql事务的控制级别从细到粗依次是行锁、间隙锁、页锁和表锁。支持的锁粒度越细,理论上语句的执行速度就越慢。Innodb支持行锁定,所以curd相对比myisam慢。当存储一些不是特别重要、允许有错误或者不经常更新的数据时,可以选择Myisam。例如保存日志和一些配置数据,例如国家行政区划数据。mysql的默认引擎是innodb。很多人想都没想就选择了默认引擎,这是个坏习惯。

B.垂直分割和水平分割,分区和表格分割。

根据对数据增长的预测,可以考虑对数据进行划分。细分的思路有两个纬度,一个是纵向细分,一个是横向细分。

垂直分割就是把逻辑上属于一个表的字段分割成多个表来设计。这样可以减少单个表的数据量,提高查询速度。查询通常不需要找出所有字段。如果所有字段都在一个表中,会影响查询速度。可以根据实际情况对查询频率相同的字段进行分类,然后对表进行相应的划分。例如,用户列表、帐户密码和一些其他信息。许多人 他的习惯是设计手表。但在一些用户活跃度较高的系统中,将账号密码单独设计成表格是一个不错的选择。

横向分段是将不同行的数据按照一定的规则放入不同的数据实体中。mysql的横向划分有两种分区和表划分,分区是mysql的另一个重要特性。分区是将数据存储在不同的块中,但仍在同一个表中,所以对程序不敏感。分表就是设计多个结构相同的表。对于mysql来说,这些表是不相关的,但是对于程序来说,它们在逻辑上被认为是同一个表,这就需要程序在执行语句之前选择表。这里不讨论分区与子表的区别。

C.指数

大多数学过mysql的人都知道索引,但一个被忽视的事实是,索引越多越好。索引太多会影响插入和更新的速度。索引的设计应该只给出高频查询,有些低频查询不需要索引。对于特定的索引类型,不会展开索引方法。值得一提的是,设计时可能与实际运行时不一致,可以找出那些慢的查询,然后用

MySQL数据包括?

Mysql数据类型有:BOOL,TINY INT,INT,BIG INT,FLOAT,DOUBLE,DECIMAL,CHAR,VARCHAR,TINY TEXT,TEXT,Date,DateTime,TimeStamp,Year等等。

首先,MySQL数据类型

主要包括以下五类:

整数类型:BIT,BOOL,TINY INT,SMALL INT,MEDIUM INT,INT,BIG INT。

浮点类型:浮点、双精度、十进制。

字符串类型:CHAR,VARCHAR,TINY TEXT,TEXT,MEDIUM TEXT,LONGTEXT,TINY BLOB,BLOB,MEDIUM BLOB,LONG BLOB。

日期类型:日期、日期时间、时间戳、时间、年份。

其他数据类型:BINARY、VARBINARY、ENUM、SET、Geometry、Point、MultiPoint、LineString、MultiLineString、Polygon、GeometryCollection等。

数据 mysql 类型 速度

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。