sql select
select中要不要使用 *
除了极少数情况下,绝大多数情况下,使用 * 是一种糟糕的编程习惯!
分析如下:
1、如果采用 select * 进行查找时,查询到的列是按照它们在表的原始位置展示的;如果客户端同样采用列的原始位置进行引用,如果更改表结构,会导致难以察觉的错误;
2、使用 * 时,数据库会先查数据字典,明确 * 代表什么,这会在分析阶段造成大量开销;
3、select * 最大的问题是可能会多出一些不用的列,导致无法使用索引覆盖,导致查询成本几何层级的增加
4、不需要的字段会增加数据传输的时间,如果是本地客户端,连接的事本地的mysql服务器,tcp协议传输数据会增加额外时间;如果是db和客户端不在同一台机器,比如连接到阿里云,则开销会更加明显
5、如果查询的时候获取了不必要的列,字段较多时,mysql并非一次性保存,而是主次分布内存,当时用完后,再次分配。如此会导致多次分配,频繁分配会增加额外消耗时间
6、如果sql语句复杂,select * 会解析更多的对象,字段,权限,属性等内容,增加数据库负担
相关阅读
Windows下的MySQL安装、MySQL-Front安装
全栈工程师开发手册 (作者:栾鹏) Mysql数据库系统软件的安装 访问“http://dev.mysql.com/downloads/windows/installer/”或ht
1. 创建相关目录 mkdir -p /data/330{7..9}/data 2. 创建配置文件 cat>> /data/3307/my.cnf<<EOF [mysqld] basedir
Navicat 链接虚拟机Mysql 报错:2003-Can't connect to
前言 在首次在本机用Navicat链接VMware win10虚拟机中的Mysql数据库报错,如下: 解决方法 一、尝试ping虚拟机ip地址 如果出现
通过阅读网上以及书本知识的总结:仅为学习记录,有误请大家指出。Mysql自身提供了主从复制功能,可以比较方便实现数据的多处自动备份
随笔 - 565 文章 - 1 评论 - 30 PostgreSQL数据库管理:定期vacuum 为什么PostgreSQL数据库管理工作中,定期vacuum是一个重要的