Heim > Datenbank > MySQL-Tutorial > 亲身体验MySQL的索引对搜索性能的提升_MySQL

亲身体验MySQL的索引对搜索性能的提升_MySQL

WBOY
Freigeben: 2016-06-01 13:14:51
Original
1099 Leute haben es durchsucht

1,创建一个user表,包含两列name,phone

2,用python(你喜欢的任何语言)插入100W条记录(lz的笔记本比较老,大概用了1分钟吧):

#!/usr/bin/env python# -*- coding:utf-8 -*-import MySQLdbconn =MySQLdb.connect(host='localhost',user='root',db='millionMessage')cur = conn.cursor()for i in range(1,1000000):	uname = "user" + str(i)	uphone = "188000" + str(i)	sql = "insert into user(name,phone) values('%s','%s')" % (uname,uphone)	cur.execute(sql)conn.commit()cur.close()conn.close()
Nach dem Login kopieren

3,在没建立索引的情况下搜索:

mysql> select * from user where name='user55555';
+-------+-----------+-------------+
| uid   | name      | phone       |
+-------+-----------+-------------+
| 55567 | user55555 | 18800055555 |
+-------+-----------+-------------+
1 row in set (0.53 sec)
mysql> select phone from user where name='user55555';
+-------------+
| phone       |
+-------------+
| 18800055555 |
+-------------+
1 row in set (0.46 sec)

4,对name属性建立索引:

mysql> alter table user add index index_username(name);
Query OK, 0 rows affected (22.27 sec)
Records: 0  Duplicates: 0  Warnings: 0

5,查询:

mysql> select * from user where name='user55555';
+-------+-----------+-------------+
| uid   | name      | phone       |
+-------+-----------+-------------+
| 55567 | user55555 | 18800055555 |
+-------+-----------+-------------+
1 row in set(0.00 sec)

mysql> select * from user where name='user999999';
+---------+------------+--------------+
| uid     | name       | phone        |
+---------+------------+--------------+
| 1000011 | user999999 | 188000999999 |
+---------+------------+--------------+
1 row in set (0.00 sec)

结果秒出。可见在海量数据的数据库上,索引对搜索性能的提升是非常大的。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage