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

  • 相关阅读:
    支持向量机(Support Vector Machine / SVM)
    k-近邻算法(KNN)
    STM32端口模式配置——上拉、下拉、模拟、浮空输入;推挽、开漏、复用输出
    Catia V5-6R2017破解版|Catia V5-6R2017下载|安装破解步骤
    在远方
    快递 10 年,逆袭为王
    “四通一达”本一家,这家人是如何“承包”中国快递半壁江山的?
    JavaScript中的内存释放
    常见的几种JavaScript内存泄露
    span(行级元素)在不定高的div(块级元素)中垂直居中的方法
  • 原文地址:https://www.cnblogs.com/maixiansheng/p/5397046.html
Copyright © 2011-2022 走看看