您正在查看 "数据库实现底层,结构,设计,优化" 分类下的文章 2011年10月09日 星期日 下午 2:11 本文是关于Skip List数据结构的,Skip List是在有序List(链表)数据结构的基础上的扩展,解决了有序链表结构查找特定值困难的问题,使用Skip List,可以使得在一个有序链表里查找特定值的时间复杂度为O(logn),在本文中我们看到,Skip List被用在leveldb中,实际上它还被使用在 |
2011年05月24日 星期二 下午 4:58
发现导论上好像没有...收下了^ ^
Trie树既可用于一般的字典搜索,也可用于索引查找。对于给定的一个字符串a1,a2,a3,...,an.则
采用TRIE树搜索经过n次搜索即可完成一次查找。不过好像还是没有B树的搜索效率高,B树搜索算法复杂度为logt(n+1/2).当t趋向大,搜索效率变得高效。怪不得DB2的访问内存设置为虚拟内存的一个PAGE大小,而且 |
2010年04月03日 星期六 上午 3:07 2010年03月26日 星期五 上午 9:54 查看mysql表结构的方法有三种:
1、desc tablename;
例如:
要查看jos_modules表结构的命令:
desc jos_modules;
查看结果:
mysql> desc jos_modules;
+- |
2010年03月20日 星期六 下午 6:02
如果你指定了ON DUPLICATE KEY UPDATE命令语句,那么在唯一索引或者主索引的作用下将不插入与数据库记录重复的内容,但同时会更新数据库中的旧记录。例如,字段a被声明为唯一索引并且里面只包含有值为1的记录,以下两个语句会达到同样的效果:
|
2010年02月24日 星期三 下午 1:29 为了在 MySQL-Max-3.23 中使用 InnoDB 表,你必须在配置文件‘my.cnf’或‘my.ini’(WINDOWS系统)中的 [mysqld] 区中详细指定配置参数。
作为最小设置,在 3.23 中你必须在 |
2010年02月24日 星期三 下午 1:05 因为JavaEye网站的数据库服务器搬家的时候被托管商的工作人员狠狠摔了一下,所以硬盘整个挂掉了,我重新安装数据库服务器的时候,顺手下载了Percona patch过的MySQL5.0版本,使用MySQL自带的heavy innodb配置文件改了改,作为my.cnf启动运行。数据库服务器的物理内存有6GB,其中有4GB可以被MySQL使用,my.cnf相关配置参数如下:
|
2010年02月24日 星期三 下午 12:47
查看某个表的建表语句 :show create table data_statdata;
drop index ts on data_statdata;
索引是加速查询的主要手段,特别对于涉及多个表的查询更是如此。本节中,将介绍索引的作用、特点,以及创建和删除索引的语法。
13.4.1 使用索引优化查询
|
2010年02月24日 星期三 上午 11:13 ALTER IGNORE TABLE data_statdata ADD UNIQUE(ts)
如何去除数据表中的重复数据利用数据导入导出的方式.这种方式是能实现的,数据建立唯一索引的.但有一个更为简单的方法,能达到这个目的.那就是 IGNORG,比如:
ALTER IGNORE TABLE `tbl_name` ADD UNIQUE (`un_name`);
tal_name 为表名,un_name唯一索引名.
IGNORE 是当出现错误时,也就是当前处理的记录,与前面处理过的数据的有冲突(重复),忽略之.使SQL继续进行,这样便把可以达到去重的目的.
引申:这个选项在insert中也存在.我们如果在一个执 |
2010年02月24日 星期三 上午 11:05 MYSQL 查看表中的所有索引名
mysql> SHOW INDEX FROM mytable FROM mydb;
mysql> SHOW INDEX FROM mydb.mytable;
mysql> SHOW KEYS FROM TableName
普通索引: CREATE INDEX < |
2010年02月24日 星期三 上午 10:46 1. 简介
在Web应用程序体系架构中,数据持久层(通常是一个关系数据库)是关键的核心部分,它对系统的性能有非常重要的影响。MySQL是目前使用最多的开源数据库,但是MySQL数据库的默认设置性能非常的差,仅仅是一个玩具数据库。因此在产品中使用MySQL数据库必须进行必要的优化。
优化是一个复杂的任务,本文描述MySQL相关的数据库设计和查询优化,服务器端优化,存储引擎优化。
|
2010年02月22日 星期一 下午 4:30 查看INNODB 的配置 状态命令:SHOW ENGINE INNODB STATUS
最近碰到一个奇怪的问题:在MySQL中修改一个大表的结构(增加一列),发现修改缓慢无比,表是用的INNODB引擎,大小大概6G的样子!按道理修改表结构应该会很快(因为CPU耗费不是很大,无非就是读就数据写入新的文件),由于执行时间超出了预期,所以该想办法解决了(要感谢我一位无所不能的伟大的同事 :))
分析问题:
MYSQL修改表结构时,会从旧表中读取数据,然后写 |
2010年02月22日 星期一 下午 4:07 默认情况下,innodb的参数设置的非常小,在生产环境中远远不够用
比如最重要的两个参数
innodb_buffer_pool_size 默认是8M
innodb_flush_logs_at_trx_commit 默认设置的是1 也就是同步刷新log(可以这么理解)
innodb_buffer_pool_size:这是InnoDB最重要的设置,对InnoDB性能有决定性的影响。默认的设置只有8M,所以默认的数据库设置下面InnoDB性能很差。在只有 InnoDB存储引擎的数据库服务器上面,可以设置60-80%的内存。更精确一点,在内存容量允许的情况下面设置比InnoDB tablespaces大10%的内存大小。
|
2010年02月22日 星期一 上午 11:13 # mysqladmin processlist -u root -p
Enter password:
+----+----------+-----------------+------+---------+-------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+----------+-----------------+------+---------+-------+-------+------------------+
| 10 | |
2010年02月01日 星期一 下午 1:01 查询之order by,group by和having的使用 (转)
(1)order by
ORDER BY子句的语法为:
SELECT column1, SUM(column2) FROM "list-of-tables"
ORDER BY "column-list" [ASC | DESC];
[ ] = optional
ORDER BY是一个可选的子句,它允许你根据指定要order by的列来以上升或者下降的顺序来显示查询的结果。例如:
ASC = Ascending Order – 这个是缺省的
DESC = Descending Order
下面举个例子:
SELECT employee_ |
| | |