MySQL 代码开发注意事项----开发高性能的sql

  序言

  一个服务或者一个程序,由 程序+数据组成。在数据这块,计算机中IO是比CPU要慢得多,为了减少IO,减少CPU运算。我们第一时间会想到索引,但索引为啥会提高效率,因为可以减少IO,在查询的时候不用遍历整张表。

  关于mysql 的小知识,

  1)在创建表的时候如果在业务中能保证非null的字段,建议明确标示not null 因为mysql中对null需要特殊的标示。使用not null 字段更节省空间。对接下来的索引构建也有好处。

  2)count(*) 和count(id) id 代表某个字段。在mysql中count(*)会把null统计进去、而count(id) 不会。如果统计的字段中含有null,这个两个统计的结果是不同的。

  3)在sql语句等号左边用函数,会使该查询在该字段无法使用索引。如LENGTH(str) 函数。

  4)索引也是需要存储到物理空间的,经常增删的表不适合建太多的索引,因为索引的维护会很耗时间。一张表最多建立15个索引。索引的长度越小越好,索引是有序的。如果查询Max()之类用索引的话,连表都不用查询了,快得飞起。

  5)mysql中null不参与比较运算,name <>‘小米‘ 得出的结果中不包含 name=null的情况。在业务不能保证某字段是否为null的情况,写代码的时候需要注意null的坑。保证取得的数据是对而全,然后再考虑查询速率问题

时间: 2024-10-28 16:21:33

MySQL 代码开发注意事项----开发高性能的sql的相关文章

PHP高性能开发-多进程开发

硬件多核时代的软件业以前计算能力的提升一直在摩尔定律的指引下,沿着提升CPU时钟频率这条道路前进,从初期的几十MHz到如今的几GHz.但是,进入2002年以 来,CPU提升主频的困难越来越大,因为主频的提升带来了散热和功耗的大幅增加等问题.几年前,英特尔和AMD都调整了研究方向,开始研究在同一CPU中 放置多个执行内核. 尽管多核是一种硬件技术,但硬件和软件是相互依存的,硬件只是一种物质基础,只有有了软件的支持,才能使硬件拥有用武之地.如今,多核的优势已成共识:一在于“降低功耗”,解决了以往靠主

监控开发之如何开发简单高性能扩展性强的监控系统

关于如何快速开发一套属于自己的运维监控系统. 记得刚入行的时候,对于监控方面,用的是nagios和cacti,现在大多数中小公司好多都开始搞zabbix了,熟悉zabbix的人,知道他的性能的瓶颈其实主要还是在数据库上,尤其是zabbx_server 针对数据库一些不高效逻辑的查询和写入引起的. 同事针对zabbix开发也搞了半年了,和他交流了下,有很多的想法. zabbix 有些查询完全可以从缓存里面取值,比如redis.memcached,不用非要从数据库里面来搞个消耗性能的大查询,有些监控

一个程序员的总结——开发注意事项

一年到头了,作为本命年的我,今年发生了太多的事情,但是不幸的是,都是好事儿,有点太过得意洋洋了,不过,不管一年顺抑或不顺,都是需要总结的,毕竟,总结,才能让人成长,首先,想注意的事情就是开发注意事项. 特别想说一件事情,公司每个功能上线之前都要测试,在测试环境测试,并且也会在正式环境测试(非公开版),把上线的问题降到最低,发生过这么几件事情,有好几次,我开发的时候没有看到问题,测试测试的时候也没有问题,但是在正式环境测试的时候,我们的头儿一眼就看到问题,很神奇的一件事情,感觉他好像就长了一双挑b

Mysql 与 php动态网站开发 入门教程

这个系列的教程由表单开始写,因为表单可以把数据库和web 之间的交互表现得很明显.提交表单 ,数据库记录注册信息. 本教程属于基础教程.大神请略过. 对于php和mysql之间的稳固性很受程序员的喜爱.虽说最近出现了hack语言准备替代php语言,但是这个语言本身也是基于php的,后面我们可以对hack语言进行一定得学习. 好像博客园有好多大牛,不知道会不会被喷,好怕 ........当然,我是借着自己学习的这股劲,把学习的过程也给记录下来.教程涉及  html 表单 简单的php 和mysql

微信开发 BAE运平台和java语音,微信mysql数据库开发实例 --图文开发教程

持续更新中 BAE java开发mysql数据库 图文教程 BAE java语言开发mysql源代码下载: 目前微信开发.BAE开发.java开发.mysql开发的教程很多,但是没有一个详细的介绍基于BAE平台.java语言和mysql数据库的微信开发教程.所以写了该教程,希望能给大家一点启发. 教程分为: 1.申请BAE账户: 2.在BAE平台建立web服务器应用: 3.在BAE平台建立mysql数据库服务器应用: 4.使用eclipse开发基于BAE平台的处理微信消息的web服务器系统: 5

WEBAPP开发技巧(手机网站开发注意事项)

1.要响应式开发web,也就是页面必须自适应屏幕大小,可以采用流体布局,如之前的文章(自适应宽度布局),其他具体的小问题可以采用media query解决(让IE支持CSS3 Media Query实现响应式Web设计和CSS3 Media Queries):2.因为手机大多是高级浏览器,可以使用html5+css3开发:3.合理灵活的使用meta标签,具体如下: <meta content=”width=device-width, initial-scale=1.0, maximum-scal

基于Jax-WS和Mysql数据库的WEB服务开发

基于Jax-WS和Mysql数据库的WEB服务开发 1 简介 近几年来,SOA,EAI等架构体系的日渐成熟,Webservice越来越炽手可热,尤其是在企业做异质平台整合时成为了首选的技术.Java的Webservice技术更是层出不穷,比较流行的有:Axis2,XFire以及JaxWS. JAXWS适合几乎所有Webservice客户端的调用,因此不少巨头型的厂商如:IBM,Weblogic等,在他们的产品上都使用了以JAXWS为标准的Webservice接口. 另外,由于实验室的项目目前采用

开发注意事项

以下事项是看到别人总结,并结合自己的开发实践整理. 1.大胆说不:勇于承认自己不知道答案,这点就和勇于对不合理的要求说不一样令人难以开口,却不能不开口. 2.重视沟通:修复错误时不要急于下手,要先明白现在的逻辑,读懂现在的代码,遇到其它小组主写的程序时不要死看程序,要多向其它小组的同事讨教. 3.小问题不容忽视:永远不要害怕问出SB的问题,再傻的问题只要是自己认真思考就要表达出来,同样如果碰到别人问一些简单的问题也不要不耐烦,要认真对待. 4.改bug或是看代码时遇到不合理的代码要善于逐步合理重

【千纸诗书】—— PHP/MySQL二手书网站后台开发之知识点记录

前言:使用PHP和MySQL开发后台管理系统的过程中,发现有一些通用的[套路小Tip],这里集中记录一下.结合工作中ing的后台业务,我逐渐体会到:除了技术知识外.能使用户体验好的“使用流程设计”积累也十分重要╭( ???)? ?? 项目github地址:https://github.com/66Web/php_book_store,欢迎Star. 一.知识点记录 1.数据库的表名和列名 绝对不要和数据库的关键字相同  order  order by 订单表-indent   分类表-class