zoukankan      html  css  js  c++  java
  • [麦先生]Mysql常用优化方法[两个不做]

    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:不做让数据库猜测编程人意图的操作,数据操作指向性应明确;

  • 相关阅读:
    微信小程序tabBar 不显示底部菜单的原因和解决方法
    MySQL安装教程
    表单按回车触发事件
    Linux查找最近修改的文件
    通过JS实现网站繁体简体互换
    二级联动下拉列表
    JS跳出框架返回上一页
    mysql查询所有记录,并去掉重复的记录
    查询时间戳函数
    简单信息逐条滚动显示,适用于企业动态,公告等
  • 原文地址:https://www.cnblogs.com/maixiansheng/p/5397046.html
Copyright © 2011-2022 走看看