环境:Mysql 5.6
表:35个字段
当在字段建立索引后,使用 like **% 时,第一次查询不会使用索引,之后才会使用索引。
对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。下面用几个例子对比查询条件的不同对性能影响.
create table test(
a int,
b int,
c int,...
阅读全文>>
聚簇索引(Clustered Indexes)
聚簇索引保证关键字的值相近的元组存储的物理位置也相同(所以字符串类型不宜建立聚簇索
引,特别是随机字符串,会使得系统进行大量的移动操作),且一个表只能有一个聚簇索引。因为由存储引擎实现索引,所以,并不是所有的引擎都支持聚簇索引。
目前,只有solidDB和InnoDB支持。
聚簇索引的结构大致如下:
注:
叶子页面包含完整的元组,而内节点页面仅包含索引的列(索引的列为整型)。一些DBMS允许用户指定聚簇索引,但是MySQL的存储引擎到目前为止都不支
持。InnoDB对主键建立聚簇索引。如果...
阅读全文>>
因为博主项目中使用Mysql 较多,所以该文总结的适用于Mysql ,其他数据库也可参考。
字段的设计优化:
(1)、越小的数据类型通常更好:越小的数据类型通常在磁盘、内存和CPU缓存中都需要更少的空间,处理起来更快。
(2)、简单的数据类型更好:整型数据比起字符,处理开销更小,因为字符串的比较更复杂。在MySQL中,应该用内置的日期和时间数据类型,而不是用字符串来存储时间;以及用整型数据类型存储IP地址。
(3)、尽量避免NULL:应该指定列为NOT NULL,除非你想存储NULL。在MySQL中,含有空值的列很难进行查询优化,因为它们使...
阅读全文>>
这个错误耽搁好多时间。
保留字被引起来后可以用作识别符。如果在表中使用这些会报1064,42000错误。
ADD
|
ALL
|
ALTER
|
ANALYZE
|
AND
|
AS
|
ASC
|
ASENSITIVE
|
BEFORE
|
BETWEEN
|
BIGINT
|
BINARY
|
BLOB
|
BOTH
|
BY
|
CALL... |
阅读全文>>
MYSQL:设定自增ID的起始值
修改表的自增字段的起始ID值
ALTER TABLE table_name AUTO_INCREMENT=1000
阅读全文>>