Mysql的开发、维护、管理的读后笔记

本文介绍MySQL数据库中的关键知识点,包括decimal类型默认精度、timestamp类型的默认值特性、char类型存储细节、不同存储引擎适用场景、浮点数与定点数选择、索引设计原则及使用限制、SQL模式的作用以及锁机制等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、decimal定点数不写精度默认没有小数位

二、同一表中的timstamp类型只能有一个默认当前系统时间

三、char类型无法保存值后面的空格,默认使用空格填充剩下的长度

四、存储引擎的对比:

这里写图片描述

五、以select,insert为主的操作推荐MyISAM引擎,这个引擎不支持事务和外键,推荐使用char保存字符;常有更新操作推荐InnoDB引擎,此引擎还支持事务和外键,推荐适应varchar类型保存数据

六、关于浮点数和定点数的选择:

这里写图片描述

七、设计索引的原则:

这里写图片描述
这里写图片描述
这里写图片描述

1、索引会使用的情况

11、创建多列索引查询用到最左边的列,如

create index ind_sales2_companyid_moneys on sales2(company_id,moneys);

然后使用:
select * from salses2 where company_id=2006;

以上会使用到创建的复合索引。

22、like查询的常量%不在第一个字符

select * from company2 where name like '%3';
上面这个不会使用索引
select * from company2 where name like '3%';
上面这个就会使用

33、对大的文本的搜索,使用全文索引而不是用like “%…%”。

全文索引的使用和创建如下:

CREATE TABLE fulltext_sample(copy TEXT,FULLTEXT(copy)) TYPE=MyISAM; 
或者建完表之后使用:
ALTER TABLE fulltext_sample ADD FULLTEXT(copy);
查询时使用:
SELECT * FROM fulltext_sample WHERE MATCH(copy) AGAINST('love');

4、列名是索引使用column_name is null将使用索引

2、索引不会使用的情况说明:

11、如果mysql估计使用索引比全表扫描更慢,则不使用索引。例如搜索key_part1在1到100之间时

22、memory/heap表并且where中不使用=进行索引列。heap表只有在=条件下才会使用索引

33、or的条件中,or前的条件中有索引而后面的条件中的列中没有索引

44、复合索引中不适索引的第一列的

55、like以%开始的

66、如果列类型是字符串,那么记得把where条件中的字符常量值用引号引起来,否则也不会使用索引,如:

select * from company2 where name = 294;
上面的不会用到
select * from company2 where name = '294';
这个会

八、sql mode:1、完成数据校验。2、保证sql符合标准语法。3、方便在不同类型数据库迁移。

九、锁机制

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值