mysql 准则 杂谈
转自 刘智慧的文章
1.尽量不要在数据库做运算,复杂运算移到程序段cpu,竟可能简单运用mysql
2.控制单表数据量, 库表控制300---400,单表字段控制20---50个,单表1G或500W行
3.效率优先,提升性能,适当牺牲范式,加入冗余
4.拒绝大事务,大SQL,大批量
5.将字符转为数字更加高效,查询更快,占用空间越少
6.避免使用null,会是索引失效
7.尽量不要用text,blob的数据类型,不要存图片在数据库中
8.能不加索引尽量不加
9.不要用索引列数据进行数据运算,会索引失效,导致全表扫描
10.尽量不要用外键
11.尽可能少用触发器和存储过程
12.尽量不要用 select *,指定要查询的字段
13.改or 用 in 或union
14.避免负向查询(not 。。) 或%前缀的查询,导致 索引失效
15.count(*)开销大,少用
16.统一字符集 和 校对规则
17.统一命名规范
18.不要在程序段 对数据库显示加锁,因对数据库不可控,采用事务
19.mysql的子查询大部分性能较差
20.分解连接(内外连接),单表执行,保证高并发
mysql 准则 杂谈的更多相关文章
- mysql 查询优化杂谈
一.把某些判断移动到应用层 我们需要在一张表里面删除某种类型的数据,大概的表结构类似这样: CREATE TABLE t ( id INT, tp ENUM ("t1", &quo ...
- <经验杂谈>Mysql中字符串处理的几种处理方法concat、concat_ws、group_concat
Mysql中字符串处理的几种处理方法concat.concat_ws.group_concat以下详情: MySQL中concat函数使用方法:CONCAT(str1,str2,-) 返回结果为连接参 ...
- 19条MySQL优化准则
1.EXPLAIN 做MySQL优化,我们要善用EXPLAIN查看SQL执行计划. 下面来个简单的示例,标注(1.2.3.4.5)我们要重点关注的数据: type列,连接类型.一个好的SQL语句至少要 ...
- mysql杂谈
本文主要记录一些零碎知识点 1.mysql默认存储引擎变更InnoDB as Default Storage Engine从mysql-5.5.5开始,InnoDB作为默认存储引擎,InnoDB作为支 ...
- 【曹工杂谈】Mysql客户端上,时间为啥和本地差了整整13个小时,就离谱
瞎扯一点非技术 本来今天上午就打算写的,结果中途被别的事吸引了注意力,公司和某保险公司合作推了一个医疗保险,让我们给父母买,然后我研究了半天条款:又想起来之前买的支付宝那个好医保,也买了两年多了,但是 ...
- MySQL 数据类型总结及选取准则
整数 整数有 TINYINT, SMALLINT, MEDIUMINT, INT 和 BIGINT 类型. 占用 8 , 16 24, ...
- mysql 事务四要素杂谈
事务四要素 对于数据库来说,并发性和准确性是数据库需要权衡的两个点. 类似于我们的应用系统,又要要性能还要要准确. 数据准确性这一条来说,最好的控制就是串行化,都别急,一个一个来.这样数据就没问题了. ...
- Mysql数据库表结构设计准则
一:动静分离 解释:最好做好静态表和动态表的分离.这里解释一下静态表和动态表的含义,静态表:存储着一些固定不变的资源,比如城市/地区名/国家(静态表一定要使用缓存).动态表:一些频繁修改的表 二:关于 ...
- MySQL引擎、索引和优化(li)
一.存储引擎 存储引擎,MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术 ...
随机推荐
- leaflet地图库
an open-source JavaScript libraryfor mobile-friendly interactive maps Overview Tutorials Docs Downlo ...
- vsftp建立虚拟用户不同目录分配不同权限操作步骤详解
vsftpd服务器同时支持匿名用户.本地用户和虚拟用户三类用户账号,使用虚拟用户账号可以提供集中管理的FTP根目录,方便了管理员的管理,同时将用于FTP登录的用户名.密码与系统用户账号区别开,进一步增 ...
- JAVA17.1.12流程学习,潜心学习,少说多做,脚踏实地,一心一意。
- HDU 1517 A Multiplication Game 博弈
题目大意:从1开始Stan与Ollie经行博弈,stan先手,每次将当前数乘上(2~9)间的任意数,最后一次操作后大于等于n的人获胜. 题目思路: 1-9 stan 胜 10-18 ollie胜 19 ...
- java学习 (2)xml操作 SAX(增、删、改、查)
sax是事件驱动的,sax是一种推模式 SAX常用事件: startDocument()----文档开始事件 startElement()-----元素开始事件 charElement()----文本 ...
- Gradle学习草稿
参考博客:http://www.cnblogs.com/davenkin/p/gradle-learning-1.html Android Plugin DSL Reference http://go ...
- 分布式版本控制系统Git-----4.Git 常用命令整理
1. git init 初始化 git 目录 2. git add 添加文件 git add fileName #添加指定文件 git add -i #手工选择要添 ...
- KMP算法的java实现
package com.trs.utils; public class KMPStr { /* * 在KMP算法中,最难求的就是next函数,如何理解next函数是一个难题,特别是k=next[k], ...
- transform translate transition 的区别
transform是变形,下面有translate transform: rotate旋转/scale缩放/skew扭曲/translate移动/matrix矩阵变形transform连写:rotat ...
- CSS3背景颜色渐变效果
1.firefox浏览器: background-image: -moz-linear-gradient(top , #eef9fe, #d1ecff); 2.safari.chrome浏览器: ba ...