首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL 数据库类型从 InnoDB 转换为 MyISAM

然后开始查找原因,发现在 phpmyadmin 后台中的数据库类型和别的 wp 站点不同,这个站点是 InnoDB 类型而别的 wp 站点是 MyISAM 类型。...也忘记了怎么搞出来的,InnoDB 类型会导致数据库大小膨胀了几倍,所以决定从InnoDB 类型转换为 MyISAM 类型。...上图是我转换的第一个 wp_commentmeta 表,最后也显示成功了,后面挨个表名转换就行了。 我这里一共 13 个表名,都转换完成后,输入“exit”退出就行了。...现在去优化数据库果然尺寸小了 3 倍多,恢复到正常了,再登录 WordPress 后台和前台检查一遍都正常了,这次转换就算成功了。...NOT NULL DEFAULT ‘0000-00-00 00:00:00’ 所以像本文这种转换方法只用于 MySQL5.6 及以下版本。

1.2K60

MySQL 数据库类型从 InnoDB 转换为 MyISAM

然后开始查找原因,发现在 phpmyadmin 后台中的数据库类型和别的 wp 站点不同,这个站点是 InnoDB 类型而别的 wp 站点是 MyISAM 类型。...也忘记了怎么搞出来的,InnoDB 类型会导致数据库大小膨胀了几倍,所以决定从InnoDB 类型转换为 MyISAM 类型。...我这里一共 13 个表名,都转换完成后,输入“exit”退出就行了。现在去优化数据库果然尺寸小了 3 倍多,恢复到正常了,再登录 WordPress 后台和前台检查一遍都正常了,这次转换就算成功了。...NOT NULL DEFAULT ‘0000-00-00 00:00:00’ 所以像本文这种转换方法只用于 MySQL5.6 及以下版本。...允许转载,保留出处:魏艾斯博客 » MySQL 数据库类型从 InnoDB 转换为 MyISAM

2.6K220
您找到你想要的搜索结果了吗?
是的
没有找到

隐秘的 MySQL 类型转换

其根源就是MySQL的隐式类型转换。 3.1 什么是隐式类型转换? 在MySQL中,当操作符与不同类型的操作数一起使用时,会发生类型转换以使操作数兼容,则会发生隐式类型转换。...结果显示同应用字符串类型参数一样,可使用索引`idx_phone`。 3.2.3 类型保持一致 最简单的一种,保证查询应用规范,SQL参数类型数据库中字段类型保持一致即可。...3.3 字符类型转换 另外,关于字符串类型转换的一些补充: mysql> select '1a2b3c' = 1; -> 1 mysql> select 'a1b2c3' = 0; -> 1 从上面的例子可以得出...4、总结 本文主要从问题入手,继而进行问题引申,最终挖掘出问题根源:MySQL隐式类型转换。...同时也告诫我们日常在写SQL时一定要检查参数类型数据库字段类型是否一致,否则可能造成隐式类型转换,不能正常应用索引,造成慢查询,甚至拖垮整个数据库服务集群。

3.1K40

谈谈 MySQL 隐式类型转换

带着这疑问,我们来看看今天的主角——MySQL隐式类型转换 什么是隐式类型转换? 在MySQL中: 当操作符与不同类型的操作数一起使用时,会发生类型转换以使操作数兼容。...为了加深我们对隐式类型转换的印象,我们再多看看几个隐式类型转换案例: 案例一: 字符串转换为数字 mysql > SELECT 1+’1′; 结果: 案例二: 数字转换为字符串 mysql -> SELECT...如何避免隐式类型转换? 只有当清楚的知道隐式类型转换的规则,才能从根本上避免产生隐式类型转换MySQL也在官网描述了进行隐式类型转换的一些规则如下: 1....类型一致 这里说的类型一致,指的是在写SQL时,参数类型一定要与数据库中的类型一致,避免产生隐式类型转换,就如刚才在文首时,如果多检查,写的SQL的参数类型数据库中字段类型一致,也就不会不走索引了,你说是不是...小心隐式类型转换 这里再重申一次,写SQL时一定要检查参数类型数据库字段类型一致,(如果参数不一致,也要使用CAST函数显示转换成一致)否则造成隐式类型转换,不走索引,后果简直不堪设想, 在前面《写会

2.6K120

MySQL的字段类型_mysql数据库字段类型

前言: 要了解一个数据库,我们必须了解其支持的数据类型MySQL 支持大量的字段类型,其中常用的也有很多。...浮点型主要有 float,double 两个,浮点型在数据库中存放的是近似值,例如float(6,3),如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6位,...2.字符串类型 字符串类型也经常用到,常用的几个类型如下表: 其中 char 和 varchar 是最常用到的。char 类型是定长的,MySQL 总是根据定义的字符串长度分配足够的空间。...3.日期时间类型 MySQL支持的日期和时间类型有 YEAR 、TIME 、DATE 、DATETIME 、TIMESTAMP,几种类型比较如下: 涉及到日期和时间字段类型选择时,根据存储需求选择合适的类型即可...总结: 本篇文章主要介绍了 MySQL 中常用的字段类型,平时用到的字段类型基本都在这里了,以一张思维导图总结如下: 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

19.3K10

mysql 隐式类型转换_scala的隐式转换

mysql查询中,当查询条件左右两侧类型不匹配的时候会发生隐式转换,可能导致查询无法使用索引。...下面分析两种隐式转换的情况 看表结构 phone为 int类型,name为 varchar EXPLAIN select * from user where phone = ‘2’ EXPLAIN...select * from user where phone = 2 两种情况都可以用到索引,这次等号右侧是’2’,注意带单引号哟,左侧的索引字段是int类型,因此也会发生隐式转换,但因为int类型的数字只有...所以虽然需要隐式转换,但不影响使用索引,不会导致慢查询 EXPLAIN select * from user where name= ‘2’ 这种情况也能使用索引,因为他们本身就是varchar 类型...EXPLAIN select * from user where name= 2 因为等号两侧类型不一致,因此会发生隐式转换,cast(index_filed as signed),然后和2进行比较。

1.9K10

mysql 类型自动化转换问题

find_in_set('4',ad_type); 参考:https://www.cnblogs.com/mytzq/p/7090197.html 无意间发现了一个这样的问题,ad _type为text类型...解惑 询问了一个朋友,他给了一个方向,mysql会自动转换类型,当你select语句的条件和数据中的type不一致的时候; 一拍大腿,是呀,之前有碰到过类似问题,如下: 有个id是varchar,你不加...‘’也可以查询出来, 应该是转换了的,但这样没走索引的,所以查询效率很低 。。...,只是有一个逗号的存在,在转换的时候会截断,实际操作如下: ?...所以就解释通了,三观恢复 拿了一下官方的翻译版本, 隐式类型转换规则: 如果一个或两个参数都是NULL,比较的结果是NULL,除了NULL安全的相等比较运算符。

2.1K20

MYSQL数据库约束类型

07.14自我总结 MYSQL数据库约束类型 一.主键约束(primary key) 主键约束要求主键列的数据唯一,并且不能为空。主键分为两种类型:单字段主键和多字段联合主键。...,字段n] 2.自动增长 只能与primary key 联用 语法:字段 数据类型 primary key auto_increment n #n为起始位置,可以不填不填默认从1开始 二.外键约束(foreign...非空约束 语法规则:字段名 数据类型 not null 创建表格后 alter table test modify 段名 数据类型 not null; 四.唯一性约束(Unique) 指定唯一约束 唯一约束...语法规则:字段名 数据类型 Uniquel 再所有列创建完毕后:unique (字段名称) 创建表格后 alter table test modify 段名 数据类型 Unique; 五.默认约束(Default...语法规则: 字段名 数据类型 Dfault 默认值 创建表格后 alter table test modify 段名 数据类型 Dfault 默认值;

2.7K10

MySQL 案例:类型转换也会用上索引?

背景 作为大多数 MySQL DBA 都有的常识,当 MySQL 的查询中出现隐式数据类型转换,比如 int 类型的列使用字符串类型的内容作为查询条件时,会出现索引失效的问题,导致查询可能会变成全表扫描...原因简析 首先可以通过以下 SQL 语句构造一个简单的环境,数据库使用了 MySQL 官方的 8.0.28 版本,当然使用腾讯云数据库 MySQL 也可以,效果是一样的。...依旧查阅官方文档,可以在类型转换的章节中找到一部分关于类型转换的介绍,摘抄部分内容如下: In all other cases, the arguments are compared as floating-point...简单来说,就是在做对比的时候,MySQL 自身会有一套基本的规则来对应不同类型数据的比较,而字符串与数字的对比中,字符串会被转换成双精度浮点型数字之后再进行对比。...本身类型转换的特殊性,仍旧可以使用到索引。

2.2K80

JS:类型类型转换

有不少人认为:JavaScript 没有类型! ? ? 正解是:JavaScript 中的变量没有类型,但值有类型。变量可以随时持有任何类型的值。 1. 值与类型 ?...类型转换基本规则 ? 在很多 JavaScript 书籍中强制类型转换被说成是危险、晦涩和糟糕的设计。但对于不懂的地方我们应该迎难而上,知其然并且知其所以然,不会因为种种传言就退避三舍。 ? ?...字符串、数字和布尔值之间类型转换的基本规则; a. ToBoolean: ? 图1:toBoolean 示例 ? b. ToString: ? 图2:toString 示例 ? b....“显式”强制类型转换 “显式” 是指那些意图较明显的方式... a. 转换为 Boolean: Boolean(...)(不带 new); !...转换为 String: String(...) (不带 new) .toString() ? ? 3. “隐式”强制类型转换 “隐式” 指那些隐晦、易坑人的方式... a.

7.6K40

类型转换

隐式转换 优先级 char,short,int,long,float,double 1.运算转换成同一类型进行运算 所有的浮点运算都是double类型 char和short在运算时都转换为int 2....赋值运算 int a = 12.7;赋值两边类型不同时,右边的类型转换为左边的类型 右边长度大于左边会进行四舍五入 强制转换 (类型说明符) 表达式 类型说明符和表达式都必须加括号 #include... int main() { //隐式转换 printf("隐式转换->%d\n", 2.5 + 1); //结果是0 是因为2.5是double,根据优先原则...//把1转换成double类型 两个浮点数相加 整型输出 所以结果为0 //强制转换 printf("强转->%d\n", (int)2.5 + 1); //结果是3 2.5强转int...= 2 2 + 1 = 3 int a = 2.5; printf("a = %d", a); //a = 2 右边与左边的数据类型保持一致 }

1.2K40

Java基础:数值类型转换、强制类型转换

数值类型之间的转换 数值类型之间的转换,在小数值往大数值转换时,不会发生精度的损失。在小数值往大数值转换时有可能发生精度的损失。...比如byte最大值也只有127,如果一个大于127的int类型数据往byte转换肯定是不行的,但是往long类型转换就完全没问题了。...在我们进行一些两种不同数值类型之间的数值运算时,先要将两个操作数转换为同一种类型,然后再计算。 具体转换为那种类型,得看他们的取值。...注:《Java核心技术 卷1》 强制类型转换 除了Java自己会进行类型转换。比如int+double,系统会把结果转换为double。 我们有时候需要手动转换一些类型。...int类型数据时,需要再强转一下。

2.4K00

MYSQL数据库-数据类型

MYSQL数据库-数据类型 零、前言 一、数据类型分类 二、数据库的字段属性 三、数值类型 1、tinyint类型 2、bit类型 3、float类型 4、decimal类型 四、字符串类型 1、char...类型 2、varchar类型 3、char和varchar比较 4、日期和时间类型 5、enum和set类型 零、前言 本章主要讲解学习MYSQL数据库的数据类型 一、数据类型分类 数据类型示图:...二、数据库的字段属性 所谓字段属性就是用来修饰数据类型的 主要的字段属性: UnSigned:无符号的,声明了该列不能为负数 ZEROFILL:0填充的,不足位数的用0来填充 , 如int...较大的数据 8个字节 float 浮点数 4个字节 double 浮点数 8个字节 decimal 字符串形式的浮点数,一般用于金融计算 1、tinyint类型 数值越界测试: 说明: 在MySQL...,占用空间4个字节 示例:小数float(4,2)表示的范围是-99.99 ~ 99.99,MySQL在保存值时会进行四舍五入 示例:如果定义的是float(4,2) unsigned 这时,因为把它指定为无符号的数

2.7K10

数据库MySQL-日期类型

5.日期类型 5.1 datetime类型 与时区无关的, 占用8个字节的存储空间 datetime(6) 用于存储毫秒级别 时间范围是1000-01-01 00:00:00 到 9999-12-31...23:59:59 5.2 timestamp类型 本质存储的是时间戳, 使用int存储, 占用了4个字节....时间范围是1970-01-01到2038-01-19 类型显示依赖于所指定的时区 5.3 date类型和time类型 date类型存储常用于生日的存储....相比于字符串/datetime/int存储要更少, 只需要使用3个字节 使用date类型还可以利用日期时间函数进行日期之间的计算 时间范围: 1000-01-01到9999-12-31 不要使用字符串类型来存储日期时间数据...日期时间类型通常比字符串占用的存储空间更小 日期时间类型在进行查找过滤的时候可以利用日期来进行对比 日期时间 类型还有着丰富的处理函数, 可以方便的对时期类型进行日期计算 使用int不如使用timestamp

2.9K30

MySQL 案例:同步中断与SQL线程类型转换

slave_type_conversions参数也可以恢复同步: set global slave_type_conversions = 'ALL_LOSSY,ALL_NON_LOSSY' 但是必须注意的是,这种设置可能会因为数据类型转换丢失数据...如果发现不一致的时候,就会抛出如描述中一样的错误信息,不过 MySQL 可以通过参数设置来允许 SQL 线程来进行一些类型转换,参考官方文档的描述: Controls the type conversion...详细的内容推荐阅读官方文档,简而言之,通过设置slave_type_conversions这个参数,可以控制 SQL 线程支持哪些类型转换。...int 到 bigint ALL_LOSSY,ALL_NON_LOSSY 同时允许有损和无损转换 空值 不允许任何类型转换 因此如问题还原场景中的例子,如果设置了slave_type_conversions...回想一下 MySQL 同步时的要求:包含字符集的设置也要一致。

1.2K70

MySQL数据库数据类型

MySQL数据库数据类型分类  在MySQL数据库中,MySQL数据类型分有四大类:数值类型、文本/二进制类型、时间日期和String类型。...以下是这四大类的具体类型:  数值类型 数值类型的范围和字节大小: tinyint类型 tinyint类型只有一个字节大小,其数据范围为:【-128,127】 有符号举例: mysql> create...举例: mysql> create table tt3( --创建tt3表,字段有id 类型为int,a 类型为bit(8).表示有8位比特位 -> id int, -> a bit(...(2); --当插入2的时候报错 ERROR 1406 (22001): Data too long for column 'gender' at row 1 小数类型 float类型 语法: float...> insert into votes values('张三','登山,武术','男'); ERROR 1265 (01000): Data truncated for column 'hobby' at

19240
领券