这些Mysql基础设计思路以及优化思路我都给你总结好了

1、定长和不定长要区分开

  2、不常用的列和常用的列分开存

  3、增加冗余,反范式化

  4、btree索引,就是用树形结构存储在磁盘上,其中操作是用2分发,找一个中间点,然后把大比这个大的分在一边,小的放在一边,然后当你查询的时候,从数字头开始,大小分开找,这个适合区间查找,不适合一个一个找

  5、hash索引,就是当你存储在硬盘的数据,先给你一个地址,然后你下次来找的时候直接用那个地址找到那个值,这个适合一个值的查找,不适合区间查询,比如where id=1这种

  6、(1)limit 的优化,能用业务逻辑解决的就用业务逻辑解决(比如百度的搜索只是显示76页)

  (2)往索引上靠,比如id>1100这种,你用到了id的hash主键索引(默认)

  (3)inner join

  7、数据库的索引都是以二叉树进行储存的,聚簇索引其实就是树的节点下面包含了这个节点的其他数据项,但是非聚簇索引只是一个标记,然后还要回行到磁盘去找到相应的数据项值,还要聚簇索引的二级索引只是一种引用,也就是二级索引下面存储的是一级索引的id,然后二级索引通过id去树上找到相应的数据项。

  非聚簇索引比如myisam存储引擎,索引和数据是存在不同的地方。找找到索引然后再找到数据.

  聚簇索引就是那个存储数据的节点,及包含索引,然后在索引下面还存有它相应的其他数据---innodb

  8、索引会占据很大的磁盘空间,然后数据的变更也会操作索引

  9、组合索引的核心思想是左半边原则,当你的最后一个条件产生like这种之后就会导致后面的用不到

  select * from test where id = 1 and name = "aa" and text like "%sss" and desc = "1";

  就会导致你后面的desc就用不到了索引

  10、hash的思想是跳出时间和空间复杂度,但是它需要一个散列度好的函数,空隙正好,然后还不能冲突

  11、innodb即使你插入的数据是乱序的,但是你查出来之后还是整理好的顺序,因为它可以按照数的索引依次返回数据,这也是聚蔟索引的一个优势

  固态硬盘支持随机读取,而不用像传统磁盘那样按照顺序转圈的读取

原文地址:http://blog.51cto.com/13284080/2286301

时间: 2024-08-08 23:06:45

这些Mysql基础设计思路以及优化思路我都给你总结好了的相关文章

mysql基础和数据库的优化

Mysql基础... 4 Mysql介绍... 4 登录mysql mysql –u root –p[掌握]... 4 SQL语言... 4 DCL. 4 grant. 4 revoke. 4 DDL. 4 建库... 4 删库... 4 建表... 4 看表结构... 5 删表... 5 修改表... 5 DML[重点]... 5 增加... 5 删除... 5 修改... 5 查看... 5 排序... 5 总数... 5 求和... 5 平均... 6 最大... 6 最小... 6 表连

高性能可扩展MySQL数据库设计及架构优化 电商项目

第1章 数据库开发规范的制定    俗话说:"没有规矩不成方圆".这一章,我们就先来制定数据库开发的各种规范,包括:数据库命名规范.数据库基本设计规范.数据库索引设计规范.数据库字段设计规范.SQL开发规范以及数据库操作规范.通过这些规范的制定可以指导并规范我们后续的开发工作,为我们以后的工作提供一个良好的基础.... 第2章 电商实例数据库结构设计    数据库开发规范的基础之上,如何更好的利用规范设计出易于维护和伸缩性良好的数据库结构,是我们的学习目的.这一章我们根据常用电商项目需

高性能可扩展MySQL数据库设计及架构优化 电商项目_1

一 数据库设计规范 1 命名规范 所有数据库对象名称必须用小写字母并下划线分割 对象名称禁止使用MySQL保留关键字 命名要做到见名识义,不超过32字节 临时表必须tmp前缀 日期后缀 备份库表bak前缀 日期后缀 所有存储相同数据的列名和类型必须一致 2 数据库基本设计规范 所有表必须用innodb引擎 数据库和表字符集同意使用utf8(全存储中文的可以使用gbk 或是gbk2312) 所有表和字段都使用comment加注释 从一开始就进行数据字典的维护 尽量控制单表数据量的大小 建议500万

MySQL join的实现原理及优化思路

Join 的实现原理 在MySQL 中,只有一种Join 算法,也就是Nested Loop Join,没有其他很多数据库所提供的Hash Join,也没有Sort Merge Join.顾名思义,Nested Loop Join 实际上就是通过驱动表的结果集作为循环基础数据,然后一条一条的通过该结果集中的数据作为过滤条件到下一个表中查询数据,然后合并结果.如果还有第三个参与Join,则再通过前两个表的Join 结果集作为循环基础数据,再一次通过循环查询条件到第三个表中查询数据,如此往复. 下面

MySQL 查询语句优化思路

query 语句的优化思路和原则主要提现在以下几个方面:1. 优化更需要优化的Query:2. 定位优化对象的性能瓶颈:3. 明确的优化目标:4. 从 Explain 入手:5. 多使用profile6. 永远用小结果集驱动大的结果集:7. 尽可能在索引中完成排序:8. 只取出自己需要的Columns:9. 仅仅使用最有效的过滤条件:10. 尽可能避免复杂的Join和子查询 关于explain 用法:explain select * from tables1 where 1 ... 先看一下在

MySQL性能调优与架构设计——第10章 MySQL数据库Schema设计的性能优化

第10章 MySQL Server性能优化 前言: 本章主要通过针对MySQL Server(mysqld)相关实现机制的分析,得到一些相应的优化建议.主要涉及MySQL的安装以及相关参数设置的优化,但不包括mysqld之外的比如存储引擎相关的参数优化,存储引擎的相关参数设置建议将主要在下一章“常用存储引擎的优化”中进行说明. 10.1 MySQL 安装优化 选择合适的发行版本 1. 二进制发行版(包括RPM等包装好的特定二进制版本) 由于MySQL开源的特性,不仅仅MySQL AB提供了多个平

阿里秒杀系统架构优化思路

秒杀业务为什么难做 im系统,例如qq或者微博,每个人都读自己的数据(好友列表.群列表.个人信息) 微博系统,每个人读你关注的人的数据,一个人读多个人的数据 秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读一个数据例如:小米手机每周二的秒杀,可能手机只有1万部,但瞬时进入的流量可能是几百几千万. 又例如:12306抢票,票是有限的,库存一份,瞬时流量非常多,都读相同的库存.读写冲突,锁非常严重,这是秒杀业务难的地方.那我们怎么优化秒杀业务的架构呢? 优化方向 优化方向有两个(

Linux性能调优,从优化思路说起

Linux操作系统是一个开源产品,也是一个开源软件的实践和应用平台,在这个平台下有无数的开源软件支撑,我们常见的apache.tomcat.mysql.php等等,开源软件的最大理念是自由.开放,那么linux作为一个开源平台,最终要实现的是通过这些开源软件的支持,以最低廉的成本,达到应用最优的性能.因此,谈到性能问题,主要实现的是linux操作系统和应用程序的最佳结合. 一.性能问题综述 系统的性能是指操作系统完成任务的有效性.稳定性和响应速度.Linux系统管理员可能经常会遇到系统不稳定.响

Linux性能调优的优化思路

Linux操作系统是一个开源产品,也是一个开源软件的实践和应用平台,在这个平台下有无数的开源软件支撑,我们常见的有apache.tomcat.nginx.mysql.php等等,开源软件的最大理念就是自由.开放,那么Linux作为一个开源平台,最终要实现的是通过这些开源软件的支持,以低廉的成本,达到应用最有的性能.因此,谈到性能问题,主要实现的是Linux系统和应用程序的最佳结合. 博文大纲:一.性能问题综述二.影响Linux性能的因素三.分析系统性能设计的人员四.调优总结 一.性能问题综述 系