关于PHP开发中的MySQL优化问题

作为一个PHP初学者,近期遇到了关于MySQL优化的问题,通过学习和查询资料,现将一些关于MySQL优化的一些知识点

总结一下,如果有错,希望指正。
一、首先是建库建表是需要注意的地方
1、存储引擎的选用
1)ISAM:优点是查询速度快,而且支持全文索引,但是不支持外键和事务
2)MyISAM:ISAM的升级,具备ISAM的所有功能
3)Memory:处理数据很快,但断电后数据会丢失
4)INnoDB:相对来说速度较慢,操作数据(增删改查)速度比较均衡,支持外键和事务,不支持全文索引
所以比较常用的存储引擎只有MyISAM和INnoDB,如果是CMS的库表常选用MyISAM,其他 像论坛、博客 类网站常选用INnoDB
2、表字段数据类型选用
1)能用数字的,绝不用字符串
2)能用枚举的,不用字符串
3)char、varcahr的选择
相同数据下,个人偏向于varcahr效率高一些(我老师告我的,当然网上也有一些评论)
3、表字段适当的添加约束条件
1)每张表最好有主键
2)字段适当唯一约束,保证字段不出现重复值
3)字段适当添加NOT NULL DEFAULT,保证不出线NULL值(会被当成对象处理)
4)经常充当条件的字段添加索引(主键索引、唯一索引、普通索引、全文索引)
4、关于外键(我的意见是不加外键)
外键是为了保证数据的一致性,但是添加了外键会影响增删改的速度(最重要的是我懒)
5、表的数据过多导致数据库运行效率地的解决办法
表的垂直拆分和水平拆分,其实就是拆分表,拆字段拆数据
二、数据库的操作语句
1、避免出现 SELECT* 这样的查询语句的出现,需要哪些字段添加哪些字段
2、避免或少用 LIKE 模糊查询,毕竟有sphinx技术
3、查询字段越简单越好,主键就不错,数字
4、不要在索引字段上使用聚合函数(索引会失效的,你可以试试)
5、可以考虑用内连接代替子查询(子查询会查询老多遍)
三、高并发(不就是访问量过大吗,第一次听的时候感觉好高大上)问题
1、MySQL提供了一个主从数据库的功能(没用过,据说不好用,老断)
2、最常用的应该是缓存
3、再就是网站的静态化
四、再解决不了就直接上负载均衡(据说超级贵)
以上是学习PHP的MySQL优化的部分整理,如果有错望留言修正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值