Skip to main content

MySql Indexing

MySql Indexing

A database index is a data structure that improves the speed of operations in a table.INSERT and UPDATE statements take more time on tables having indexes where as SELECT statements become fast on those tables. The reason is that while doing insert or update, database need to insert or update index values as well.

Indexes are a way to avoid scanning the full table to obtain the result
CREATE TABLE person (
last_name VARCHAR(50) NOT NULL,
first_name VARCHAR(50) NOT NULL,
INDEX (last_name, first_name)
);
So if your index has two columns, say last_name and first_name, the order that you query these fields matters a lot.


This query would take advantage of the index:

SELECT last_name, first_name FROM person WHERE last_name = "John" AND first_name LIKE "J%"

Using Create statement
CREATE INDEX techsudhir_age ON employees(emp_name, emp_age);

Alter command to update index
ALTER TABLE person  ADD INDEX (name);

Removing Indexes
DROP INDEX name ON person 

In MySQL, the full-text index is a kind of index that has a name FULLTEXT. It define for a column whose data type is CHAR, VARCHAR or TEXT
Create FULLTEXT index

CREATE TABLE person (
id int(4) NOT NULL AUTO_INCREMENT,
last_name VARCHAR(50) NOT NULL,
first_name VARCHAR(50) NOT NULL,
post_content text,
PRIMARY KEY (id),
FULLTEXT KEY emp_name(last_name, first_name),
FULLTEXT KEY post_content (post_content)
);

FULL TEXT INDEX

Full-text is a “natural language search”.It indexes words that appear to represent the row, using
the columns you specified.

  1. FULLTEXT is the index type of full-text index in MySQL.
  2. Full-text indexes can be created only for VARCHAR, CHAR or TEXT columns.

Alter command
ALTER TABLE person ADD FULLTEXT KEY post_content (post_content)
OR you can also create using create command

CREATE FULLTEXT INDEX post_content ON person(last_name, first_name)

ALTER TABLE post_content DROP INDEX keywords;

Syntax : MATCH (col1,col2,col3...) AGAINST (expr [search_modifier])

//AGAINST() takes a string to search, and an optional modifier that indicates what type of search to perform.The search string must be a string value.

SELECT * FROM articles WHERE MATCH(title, body) AGAINST ('PHP');

Types of full-text searches :

Natural Language Full-Text Searches:
Natural language full-text search interprets the search string as a free text and no special operators are required.
Syntax : AGAINST (expr  IN NATURAL LANGUAGE MODE)
Example: SELECT * FROM articles WHERE MATCH(title, body) AGAINST ('PHP' IN NATURAL LANGUAGE MODE);

Boolean Full-Text searches: It allow you to proceed words with a + or a - to force it to either be present (+) or not present (-).
Syntax : AGAINST (expr  (+)exp IN BOOLEAN MODE)
Example: SELECT * FROM articles WHERE MATCH(title, body) AGAINST ('PHP -CakePHP'  IN BOOLEAN MODE);
"-CakePHP" means that MySQL will not return any rows that match "CakePHP", even if they match "PHP".

Putting double quotes around groups of words allow phrase searching. 
Example: SELECT * FROM articles WHERE MATCH(title, body) AGAINST ('"PHP CakePHP"'  IN BOOLEAN MODE);

That matches rows that have "PHP CakePHP" just like that - no words in between, not one or the other.

Querying the Data
mysql> SELECT entryID,title ROM blog_entries WHERE MATCH (title,entry) AGAINST('mother');

Comments

Popular posts from this blog

A Guide to UTF-8 for PHP and MySQL

Data Encoding: A Guide to UTF-8 for PHP and MySQL As a MySQL or PHP developer, once you step beyond the comfortable confines of English-only character sets, you quickly find yourself entangled in the wonderfully wacky world of UTF-8. On a previous job, we began running into data encoding issues when displaying bios of artists from all over the world. It soon became apparent that there were problems with the stored data, as sometimes the data was correctly encoded and sometimes it was not. This led programmers to implement a hodge-podge of patches, sometimes with JavaScript, sometimes with HTML charset meta tags, sometimes with PHP, and soon. Soon, we ended up with a list of 600,000 artist bios with double- or triple encoded information, with data being stored in different ways depending on who programmed the feature or implemented the patch. A classical technical rat’s nest.Indeed, navigating through UTF-8 related data encoding issues can be a frustrating and hair-pul...

How To Create Shortcodes In WordPress

We can create own shortcode by using its predified hooks add_shortcode( 'hello-world', 'techsudhir_hello_world_shortcode' ); 1. Write the Shortcode Function Write a function with a unique name, which will execute the code you’d like the shortcode to trigger: function techsudhir_hello_world_shortcode() {    return 'Hello world!'; } Example: [hello-world] If we were to use this function normally, it would return Hello world! as a string 2. Shortcode function with parameters function techsudhir_hello_world_shortcode( $atts ) {    $a = shortcode_atts( array(       'name' => 'world'    ), $atts );    return 'Hello ' . $a['name'] . !'; } Example: [hello-world name="Sudhir"] You can also call shortcode function in PHP using do_shortcode function Example: do_shortcode('[hello-world]');

Integrating Kafka with Node.js

Integrating Kafka with Node.js Apache Kafka is a popular open-source distributed event streaming platform that uses publish & subscribe mechanism to stream the records(data). Kafka Terminologies Distributed system: Distributed system is a computing environment where various software components located on different machines (over multiple locations). All components coordinate together to get stuff done as one unit.   Kafka Broker: Brokers are cluster of multiple servers. Message of each topic are split among the various brokers. Brokers handle all requests from clients to write and read events. A Kafka cluster is simply a collection of one or more Kafka brokers. Topics: A topic is a stream of "related" messages. Its unique throughout application. Kafka producers write messages to topics. Producer: Producer publishes data on the topics. A producer sends a message to a broker and the broker receives and stores messages. Consumers: Consumers read data from topics. A consu...