[麦先生]Mysql常用优化方法[两个不做]

本文分享了MySQL数据库性能优化的经验,包括合理选择字段类型减少表大小、选用合适的存储引擎如InnoDB支持事务处理、使用UNION简化查询等。并强调了避免资源浪费及明确的数据操作指向性。

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

 

1.选取最使用的字段属性.

思考点:MYSQL可以很好的支持大量数据的存取,但是通常而言,数据库的表越小,在它上面执行查询的速度也就越快.

常见错误:做为跟我一样的PHP初学者常犯的错误是选择默认的字段宽度,譬如在使用Navicat数据库辅助工具时,无论什么字段常常选择默认varchar(255),在小数据查询时,这样固然没有太大影响,但是进行大数据采集分析调用的时候其劣势暴漏一览无余

解决方案 : 在定义表的时候尽可能将表字段宽度设小,譬如邮编这个字段,用char(6)可以很好的完成任务;

       如果可以 我们应该使用MEDIUMINT而不是BIGIN定义整型字段;譬如省份和性别 可以选择用ENUM来定义,因为被当作数值型数据解决;

     应尽量将字段设为NOTNULL 这样数据库在做提取数据时就不用在做是否为空的判断;

2 .选择合适的存储引擎

常见问题:由于PDO的跨数据库操作(数据库的抽象层),预处理(防止sql注入),支持事务回滚(rollback),逐渐在高版本中的PHP普及和对传统数据库查询语句的摒弃,在进行数据库多数据查询时,我认为应优先选择PDO;MYSQL数据库支持两种存储引擎:innodb 和 Myisam;但是PDO在做事务处理时只支持innodb 因而在涉及表字段时应设置为engine=innodb;

解决方案: 将数据表结构引擎设置为innodb;可以用show create table 表名查看表结构,如果不是innodb可以使用:alter table 表名 engine=innodb修改引擎;

3.使用UNION来代替手动创建的临时表

思考:在需要使用临时表的两条或多条SELECT查询合并的一个查询中,我发现使用UNION创建的临时表在会话结束后自动删除,从而保证了数据库的整齐高效;

使用方法:SELECT Name Phone FROM client UNION SELECT NAME,CREATER FROM Name,BirthDate FROM author ;

 

我总结的两个不做:

  1:不做无谓的资源占用;

  2:不做让数据库猜测编程人意图的操作,数据操作指向性应明确;

转载于:https://www.cnblogs.com/maixiansheng/p/5397046.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值