Mysql 索引
索引是一种特殊的文件,innodeb 数据表上的索引是表空间的一个组成部分,它们包含着对数据表所有记录的引用指针
-
普通索引
由关键字(key或indexd定义的索引),唯一的任务是加快对数据的访问速度
允许被索引的数据包含重复的值,如果能确定某个数据列只包含彼此不同的只,创建索引的十句话使用关键字UNIRQUE把它定义为 一个唯一索引,唯一索引可以保证数据记录的唯一性。
SELECTN 'uid' FROM people WHERE lname '='Liu' AND 'fname' ='Zhiqun' AND 'age' = 26 ;
因为我们不想扫描整个表,故建立索引
ALTER TABLE people ADD INDEX lname(lname);
将lname 上面建立索引,和样把范围限制在lname = ''LIU'的结果1上,然后扫描结果1,产生满足 fname= ''的结果集2,在搜秒结果集2,然后找打3 ,最终得到结果
多列索引
ALTER TABLE people ADD INDEX lname_fname_age(lane,fname,age);
在mysql索引执行查询时,只能使用一个索引,mysql会选择一个最严格(获得结果集记录最少的)索引 where字句中使用最频繁的一列放在最左边
-
主键索引
一种特殊的唯一索引,在一张表中只能定义一个主键索引,主键用于唯一标识一条记录,使用关键字PRIMARY KEY 来创建
- 全文索引
myisam 的支持
-
组合索引
INDEX(columnA,columnB)
优缺点
虽然可以提高数据的查询速度,但是会降低插入,删除,更新表的速度,因为在执行这些写操作时,还要操作索引文件.
- Mysqli_fetch_row 与 mysqli_fetch_array
- Mysqli_fetch_row 取得一行数据。
- mysqli_fetch_array 将数据以数字索引方式存储在数组中,可以将数
据作为关联索引存储,用字段名作为键名。
- 第二个参数result_type 有一下值 mysql_assoc(关联数组) ,mysql_num (索引数组)和mysql_both(两者数组都能得到)