SS'Blog - SS'Blog

PHP THAT DOESN'T HURT. CODE HAPPY & ENJOY THE FRESH AIR.

HAPPY NEW YEAR !

Laravel
StudyScript.com

数据库垂直拆分

一、缘起当数据库的数据量非常大时,水平切分和垂直拆分是两种常见的降低数据库大小,提升性能的方法。假设有用户表:user(uid bigint,name varchar(16),pass varchar(16),age int,sex tinyint,flag tinyint,sign varchar ······
阅读全文

mysql 水平分表的几种方法

一,先说一下为什么要分表当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。根据个人经验,mysql执行一个sql的过程如下:1,接收到sql;2,把sql放到排队队列中 ;3,执行sql;4,返回执行 ······
阅读全文

节约内存:Instagram的Redis实践

Instagram可以说是网拍App的始祖级应用,也是当前最火热的拍照App之一,Instagram的照片数量已经达到3亿,而在Instagram里,我们需要知道每一张照片的作者是谁,下面就是Instagram团队如何使用Redis来解决这个问题并进行内存优化的。首先,这个通过图片ID反查用户UID ······
阅读全文

Mysql存储过程和函数区别介绍

存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。 存储过程和函数存在以下几个区别: 1)一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。存储过程,功 ······
阅读全文

MySQL优化

 10. 从 PROCEDURE ANALYSE() 取得建议PROCEDURE ANALYSE() 会让 MySQL 帮你去分析你的字段和其实际的数据,并会给你一些有用的建议。只有表中有实际的数据,这些建议才会变得有用,因为要做一些大的决定是需要有数据作为基础的。例如,如果你创建了一个 INT 字 ······
阅读全文

mysql查询缓存设置

第一: query_cache_type 使用查询缓存的方式一般,我们会把 query_cache_type 设置为 ON,默认情况下应该是ONmysql> select @@query_cache_type; +--------------------+ | @@query_cache_typ ······
阅读全文

MySql避免全表扫描

对查询进行优化,应尽量避免全表扫描,首先应考虑在where 及order by 涉及的列上建立索引:尝试下面的技巧以避免优化器错选了表扫描:使用ANALYZE TABLE tbl_name为扫描的表更新关键字分布。对扫描的表使用FORCE INDEX告知MySQL,相对于使用给定的索引表扫描将非常耗 ······
阅读全文

MySQl数据库优化实例

课程表(100条数据-通过存储过程创建测试数据参考)create table Course(     c_id int PRINARY KEY,     name vaarchar(10) )学生表(70000条数据)create table Sudent(     id int PRIMA ······
阅读全文

MySQL索引分析与优化

一、索引是什么? 索引是用来快速寻找具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行query查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直到找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上创建了索引,MySQL就无 ······
阅读全文

MySQL查询优化->explain用法和查询结果解析

MySQL的EXPLAIN命令用于SQL语句的查询执行计划(QEP)。这条命令的输出结果能够让我们了解MySQL 优化器是如何执行 SQL 语句的。这条命令并没有提供任何调整建议,但它能够提供重要的信息帮助你做出调优决策。执行查询语句:mysql> explain select * from t_p ······
阅读全文

MYSQL 优化常用方法

1、选取最适用的字段属性       MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增 ······
阅读全文

MySQL索引

*** Mysql索引概念 ***说说Mysql索引,看到一个很少比如:索引就好比一本书的目录,它会让你更快的找到内容,显然目录(索引)并不是越多越好,假如这本书1000页,有500也是目录,它当然效率低,目录是要占纸张的,而索引是要占磁盘空间的。*** 唯一索引 ***创建唯一索引的目的不是为了提 ······
阅读全文

MySQL通过存储过程创建测试数据

先看过程,问题后面会解答。连接mysql数据库mysql -u root -p #提示输入密码,无密码直接enter使用test数据库use test;创建要插入的数据表CourseDROP TABLE IF EXISTS test;  CREATE TABLE test(      ID I ······
阅读全文

MySQL索引类型

索引概述:  什么是索引? 索引(Index)是帮助MySQL高效获取数据的数据结构,这是一种比较官方的说法。它的存在形式是文件。索引能够帮助我们快速定位数据。  为什么使用索引? 索引可以让mysql高效运行,可以大大提高mysql的查询(包括排序,分组)效率;数据约束(唯一索引的建立)  ······
阅读全文

笛卡尔积

笛卡尔积在数学中,两个集合X和Y的笛卡尓积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2) ······
阅读全文

MySQL索引结构btree索引和hash索引的区别

Mysql索引主要有两种结构:B+树和hash.hash:hsah索引在mysql比较少用,他以把数据的索引以hash形式组织起来,因此当查找某一条记录的时候,速度非常快.当时因为是hash结构,每个键只对应一个值,而且是散列的方式分布.所以他并不支持范围查找和排序等功能.B+树:b+tree是my ······
阅读全文

数据库性能优化之冗余字段的作用

在设计数据库时,某一字段属于一个表,但它又同时出现在另一个或多个表,且完全等同于它在其本来所属表的意义表示,那么这个字段就是一个冗余字段。——以上是我自己给出的定义冗余字段的存在到底是好还是坏呢?这是一个不好说的问题。可能在有人看来,这是一个很蹩脚的数据库设计。因为在数据库设计领域,有一个被大家奉为 ······
阅读全文