mysql 显示前三项_详解MySQL三项实用开发知识
其实项目应用的瓶颈还是在db端,在只有少量数据及极少并发的情况下,并不需要多少的技巧就可以得到我们想要的结果,但是当数据量达到一定量级的时 候,程序的每一个细节,数据库的设计都会影响到系统的性能。这里就数据库开发及优化的话题和大家做个讨论和分析,也请大家完善,这里就以下几个话题,我先 发表自己的见解。
1.存储引擎的选择
2.索引的设计及使用
3.大批量插入时SQL语句的优化
存储引擎的选择
声明:本文所针对的数据库版本都是MYSQL 5这里我主要针对两种存储引擎进行简单比较分别是MyISAM和InnoDB,首先比较下区别:
1. MyISAM不支持事务,不支持外键,优点是访问速度高,批量插入速度快。假设大量的操作是select、insert,建议采用该存储引擎。但是在我的实际应用中,出现过批量插入过于频繁的时候,当数据量到达一定级别,出现表损坏的情况。
2. InnoDB支持事务处理,但是相对于前者,处理效率低一些,并且其索引及数据也更占用磁盘空间。在存储一些关键数据,并需要对其进行事务操作的时候,我们可以选择innodb,当然,我认为他不应该是访问量太大的。
索引的设计及使用
没有索引的表是恐怖的,除非里头没多少数据,但是怎么设计索引是合理的?恐怕不是所有人都明白,这里简要分析下索引的设计及使用。
1. 索引通常是设置where字句中的列,如果你设置select后的列,这是没有任何意义的。当然你需要对某列进行排序,order by后的列也是可以建成索引的。
2. 使用唯一索引,主键就是最好的例子,假设你建的索引列,大量都是重复的,例如:性别,那么这样的索引并不会加快搜索速度。至于为什么,请大家自行了解索引的工作原理。
3. 只要有可能,就要尽量限定索引的长度,例如索引列为 char(100),在其前10个字符大部分都是唯一的,请设置索引的长度为10,使用短索引可以加快查询速度,并节省硬盘空间。
4. 索引的左前缀特性,联合索引实质上也是建立了多个的索引,那么是建立联合索引好还是分别建多个索引好呢?显然前者更好,利用左前缀特性,只要联合索引的最左的列被用到,那么索引都会被使用。
5. 当然,最后要说的是,不要过度使用索引,索引越多,插入的速度越慢,尤其到数据量庞大时,同时,大量的索引将耗费很多硬盘空间,造成不必要的浪费。
mysql 显示前三项_详解MySQL三项实用开发知识相关推荐
- mysql mgr 三节点_详解MySQL 5.7 MGR单主确定主节点方法
我们行MGR年底要上线了,每天都要看官方文档学习,做测试,坚持每天写一个小知识点,有想一起学习的么~ MySQL 5.7 MGR单主确定主节点是哪个,我们可以通过成员ID来判断,然后结合read_on ...
- mysql如何查看事务日记_详解 Mysql 事务和Mysql 日志
事务特性 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节. 2.一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破 ...
- mysql影响行数解析_详解MySQL的数据行和行溢出机制
一.行 有哪些格式? 你可以像下面这样看一下你的mysql行格式设置. 其实mysql的数据行有两种格式,一种就是图中的 compact格式,还有一种是redundant格式. compact是一种紧 ...
- mysql分区表truncate分区数据_详解MySQL分区表
前言: 分区是一种表的设计模式,通俗地讲表分区是将一大表,根据条件分割成若干个小表.但是对于应用程序来讲,分区的表和没有分区的表是一样的.换句话来讲,分区对于应用是透明的,只是数据库对于数据的重新整理 ...
- mysql如何进行压测_详解MySQL如何按表创建千万级的压测数据
有时我们要对系统做压测,或者数据库压力测试,这时候需要对某些表插入几百万或者上千万数据,下面介绍下怎么利用MySQL循环和存储过程对特定表的创建千万行数据. 1. 准备测试表 CREATE TABLE ...
- mysql内连接部门平均值_详解MySql基本查询、连接查询、子查询、正则表达查询_MySQL...
查询数据指从数据库中获取所需要的数据.查询数据是数据库操作中最常用,也是最重要的操作.用户可以根据自己对数据的需求,使用不同的查询方式.通过不同的查询方式,可以获得不同的数据.MySQL中是使用SEL ...
- mysql查询男生基本情况_详解MySql基本查询、连接查询、子查询、正则表达查询...
select * from STUDENT; 2.2.按条件查询 (1) 比较运算符 > , < ,= , != (< >),>= , <= select * fr ...
- mysql事务如何保证持久性_详解MySQL事务持久性实现
所谓MySQL事务持久性就是事务一旦提交,就是永久性的,不会因为宕机等故障导致数据丢失(外力影响不保证,比如磁盘损害).持久性是保证了MySQL数据库的高可靠性(High Reliability),而 ...
- mysql执行事务的语句_详解MySQL执行事务的语法和流程
摘要:MySQL 提供了多种存储引擎来支持事务. MySQL 提供了多种存储引擎来支持事务.支持事务的存储引擎有 InnoDB 和 BDB,其中,InnoDB 存储引擎事务主要通过 UNDO 日志和 ...
最新文章
- go python php 压力测试_pyLot 基于python的压力测试工具
- js只能输入数字,小数点(整理)
- 【Groovy】Groovy 脚本调用 ( Groovy 脚本中的作用域 | 本地作用域 | 绑定作用域 )
- php redis zset 延迟队列_PHP + Redis 实现简单消息队列
- 【Python】远离 Python 最差实践,避免挖坑
- Redis集群如何安装
- 全球地区资料json 含中英文 经纬度_2020年Brain Bee北京、天津、河北赛区地区赛参赛说明...
- (41)System Verilog输出变量时序延迟
- AndroidStudio新建项目报错build failed
- strust2 和 hibernate的整合------登录的实现
- bzoj1854 [Scoi2010]游戏
- 数控直流电压源的设计与制作【keil5 AD20]
- ARM指令集和X86指令集对比
- android局域网打印机共享文件夹,如何设置电脑使安卓手机能访问局域网共享的文件...
- IBM小型机更换硬盘详细步骤
- 阿卡迪亚大学计算机科学专业,阿卡迪亚大学世界排名解读
- 特效行者app手机版制作飞天特效视频的教程
- 【腾讯云新知实验室】一站式提供视频解决方案
- 软件获取imei和imsi_android平台获取手机IMSI、IMEI 、序列号和手机号的方法
- Bit Twiddling Hacks