高性能MySQL–MySQL架构与历史

无论何时,只要有多个查询需要在同一时刻修改数据,都会产生并发控制的问题。在处理并发读或者写时,可以通过实现一个由两种类型的锁组成的锁系统来解决问题。这两种类型的锁通常被称为共享锁(shared lock)和排它锁(exclusive lock),也叫读锁(read lock)和写锁(write lock).读锁是共享的,或者说是相互不阻塞的。多个客户在同一时刻同时读取同一个资源,而互不干扰。写锁则....
  •   
  • 3457
  • MySQL
  • 0
  • super_dodo
  • 2017/03/03

探索MySQL索引(单表百万)优劣对比主键索引VS普通索引

紧接着上一篇文章关于索引字段的离散度不够大,这次我们来对用户的手机号码做离散索引,关于表结构和内容也详细见前一篇幅。友情链接见该文底部。 这次我们做简易的,也就是只查询一个条件即where phone='****';我们分为三种对比不建任何索引,主键索引,普通索引三种。 //默认情况下,不在phone字段上建索引的情况下 SELECT SQL_NO_CACHE FROM user_list WHERE phone='1867....
  •   
  • 4123
  • MySQL
  • 32
  • super_dodo
  • 2017/03/02

探索MySQL索引(单表百万)优劣对比主键索引,联合索引(顺序)

现在我们有一张简易的用户表,目前有测试数据119万条。今天闲来无事,所以想测试一下WHERE条件中一个字段或者多个字段(排序),之间的多个主键索引联合索引的比较。一切以你自己的环境和数据量为参考。以下情况仅为dodo的个人电脑环境下面的测试。欢迎拍砖和指引。另外此处的为MyISAM的引擎。 //查看一下默认的表结构,主键自增,主键索引,没有其他索引 SHOW CREATE TABLE u....
  •   
  • 4539
  • MySQL
  • 36
  • super_dodo
  • 2017/03/01

SQL语句执行过程详解,一条sql到底是怎样执行的

一、SQL语句执行原理: 第一步:客户端把语句发给服务器端执行 当我们在客户端执行 select 语句时,客户端会把这条 SQL 语句发送给服务器端,让服务器端的进程来处理这语句。也就是说,Oracle 客户端是不会做任何的操作,他的主要任务就是把客户端产生的一些 SQL 语句发送给服务器端。虽然在客户端也有一个数据库进程,但是,这个进程的作用跟服务器上的进程作用事不相同的。服务....
  •   
  • 4697
  • MySQL
  • 40
  • super_dodo
  • 2017/02/24

大型网站应用中MySQL的架构演变史[转载]

没有什么东西是一成不变的,包含我们的理想和生活!MySQL作为一个免费的开源的关系型数据库,深受大家喜爱,从最初的无人问津到当下的去IOE,都体现出了MySQL举足轻重的作用。今天我们就从淘宝的发展来阐述MySQL在大型网站下的架构演变史! MySQL的可扩展性 架构的可扩展性往往和并发是息息相关,没有并发的增长,也就没有必要做高可扩展性的架构,这里对可扩展性进行简单....
  •   
  • 2959
  • MySQL
  • 38
  • super_dodo
  • 2017/02/17

互联网公司为啥不使用MySQL分区表?[转载]

缘起:有个朋友问我分区表在58的应用,我回答不出来,在我印象中,百度、58都没有听说有分区表相关的应用,业内进行一些技术交流的时候也更多的是自己分库分表,而不是使用分区表。于是去网上查了一下,并询问了58到家的DBA专家,将自己收到的信息沉淀下来,share给大伙。 解决什么问题? 回答:当mysql单表的数据库过大时,数据库的访问速度会下降,“数据量大”问题的常见....
  •   
  • 5503
  • MySQL
  • 25
  • super_dodo
  • 2017/02/16

MySQL查询缓存打开、设置、参数查询、性能变量

query_cache_type 使用查询缓存的方式 一般情况下,query_cache_type的默认情况下是OFF, 也可以根据需要进行设置为ON。开启可以修改mysql的配置文件或者使用mysql的设置语句. mysql> SELECT @@query_cache_type; +--------------------+ | @@query_cache_type | +--------------------+ | ON | +--------------------+ //query_cache_type有3个....
  •   
  • 7216
  • MySQL
  • 37
  • super_dodo
  • 2017/02/15

MySql查询缓存机制的简介

缓存机制简单的说就是缓存sql文本及查询结果,如果运行相同的sql,服务器直接从缓存中取到结果,而不需要再去解析和执行sql。如果表更改了,那么使用这个表的所有缓冲查询将不再有效,查询缓存值的相关条目被清空。更改指的是表中任何数据或是结构的改变,包括INSERT、UPDATE、DELETE、TRUNCATE、ALTER TABLE、DROP TABLE或DROP DATABASE等,也包括那些映射到改变了的表的....
  •   
  • 3484
  • MySQL
  • 34
  • super_dodo
  • 2017/01/23

MYSQL常见索引类型(主键索引/唯一索引/普通索引/组合索引)

在数据量特别大的数据库表中,对字段建立索引可以大大提高查询速度。通过善用这些索引,可以令MySQL的查询和运行更加高效。 一、MySQL常见的索引类型如下 MySQL常见索引有:主键索引、唯一索引、普通索引、全文索引、组合索引 PRIMARY KEY(主键索引) ALTER TABLE `table_name` ADD PRIMARY KEY (`column`) UNIQUE(唯一索引) ALTER TABLE `table_name` ADD UNIQUE (`c....
  •   
  • 5326
  • MySQL
  • 35
  • super_dodo
  • 2017/01/20

MySQL查看、创建、修改和删除索引(Index)的方法

MySQL在索引列上,除了上面提到的有序查找之外,数据库利用各种各样的快速定位技术,能够大大提高查询效率。特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍。 1.MySQL创建索引 在执行CREATE TABLE语句时可以创建索引,也可以单独用CREATE INDEX或ALTER TABLE来为表增加索引。 //ALTER TABLE ALTER TABLE用来创建普通索引、UNIQUE索引....
  •   
  • 5389
  • MySQL
  • 38
  • super_dodo
  • 2017/01/20